Hanya alat lain: mengenal konfigurasi layanan dengan Desired State Configuration 

Desired State Configuration (DSC) adalah alat manajemen konfigurasi server. Dengan itu, Anda dapat mengkonfigurasi server (membuat perubahan pada registri, menyalin file, menginstal dan menghapus komponen), memantau status pengaturan saat ini dan dengan cepat kembali ke pengaturan dasar.

DSC menarik bagi mereka yang mengikuti pendekatan DevOps. Alat ini sangat cocok dengan Infrastruktur sebagai paradigma Kode: pengembang dapat menambahkan persyaratan mereka ke konfigurasi dan memasukkannya ke dalam sistem kontrol versi, dan tim dapat menggunakan kode tanpa menggunakan proses "manual".

Bersama dengan Stanislav Buldakov dari RaiffeisenbankKami menggabungkan pengalaman kami dengan mesin DSC dan membaginya menjadi 2 artikel. Pada bagian pertama, kami akan menganalisis prinsip-prinsip dasar kerja dan berkenalan dengan fitur-fitur penggunaan pada contoh-contoh praktis:

  • “Buka kemasannya” dengan mesin DSC, lihat sumber apa yang secara default, dan tunjukkan di mana mendapatkan sumber daya tambahan;
  • Mari kita lihat bagaimana menggambarkan konfigurasi di DSC; 
  • Kita akan belajar bagaimana agen bawaan Local Configuration Manager menerapkan konfigurasi pada server, menunjukkan bagaimana itu dikonfigurasi menggunakan meta-konfigurasi;
  • mari kita beralih ke kasus konfigurasi yang lebih kompleks: konfigurasi parsial dan konfigurasi rintisan.



DSC adalah mesin yang ringan dan cepat. Misalnya, menggunakannya, Anda dapat menginstal .NET Framework 3.5 pada mesin virtual lebih cepat. Inilah yang membantunya mempercepat proses konfigurasi layanan:

  • « » Windows PowerShell. 
    DSC PowerShell Windows Management Framework. Linux . , PowerShell. 
  • , . 
    , , , . DSC. 
  • , .
    DSC , . .

Konfigurasi selalu dilakukan berurutan, tanpa syarat dan bercabang. Oleh karena itu, secara singkat, algoritma operasi DSC terlihat seperti ini:

  1. Konfigurasikan Manajer Konfigurasi Lokal (LCM) . Ini adalah agen bawaan yang bertanggung jawab untuk menerapkan konfigurasi ke server. Kami memberitahunya bagaimana konfigurasi yang dideklarasikan harus bekerja dan dalam urutan apa. 
  2. Jika sumber daya tambahan diperlukan, instal dan sambungkan terlebih dahulu.
  3. Dalam bentuk deklaratif, kita menulis urutan konfigurasi. 
  4. Kami menyiarkan konfigurasi dalam format file MOF.
  5. Kami mengirim konfigurasi ke target yang baru digunakan atau server yang ada.
  6. LCM menerima konfigurasi (file MOF) plus instruksi untuk mengatur LCM itu sendiri.
  7. Konfigurasi segera diterapkan oleh tim kami.


Diagram disederhanakan dari arsitektur DSC.

Kami akan mulai berkenalan dengan mesin dengan mempelajari sumber daya yang telah ditentukan. Selanjutnya, coba tulis konfigurasi.

Sumber Daya DSC 


Sumber daya DSC adalah sejenis analog dengan modul PowerShell. Setiap server Windows sudah memiliki sumber daya DSC yang telah ditentukan sebelumnya, mereka berada di direktori yang sama dengan modul PowerShell. Daftar ini dapat diperoleh melalui cmdlet Get-DscResourse. Seperti apa daftar ini pada Windows 10 1809:
 
PS C:\windows\system32> Get-DscResource | Sort-Object -Property Name | ft ImplementedAs, Name -a
 
ImplementedAs Name
------------- ----
   PowerShell Archive
   PowerShell Environment
       Binary File
   PowerShell Group
    Composite GroupSet
       Binary Log
   PowerShell Package
   PowerShell PackageManagement
   PowerShell PackageManagementSource
    Composite ProcessSet
   PowerShell Registry
   PowerShell Script
   PowerShell Service
    Composite ServiceSet
       Binary SignatureValidation
   PowerShell User
   PowerShell WaitForAll
   PowerShell WaitForAny
   PowerShell WaitForSome
   PowerShell WindowsFeature
    Composite WindowsFeatureSet
   PowerShell WindowsOptionalFeature
    Composite WindowsOptionalFeatureSet
   PowerShell WindowsPackageCab
   PowerShell WindowsProcess

Nama-nama sumber daya memberikan pemahaman tentang apa yang mereka kerjakan: 

  • Arsip - dengan arsip pengemasan dan pembongkaran;
  • Lingkungan - dengan variabel lingkungan;
  • File - dengan file;
  • Grup - dengan grup pengguna lokal;
  • Log - dengan log;
  • Paket —– dengan paket perangkat lunak;
  • Registri —– dengan kunci registri dan statusnya;
  • Layanan - dengan layanan dan statusnya;
  • Pengguna - dengan akun pengguna lokal;
  • WindowsFeature — Windows Server;
  • WindowsProcess — Windows;
  • Script —  PowerShell- . 3 : SetScript — -, TestScript — , , GetScript — .

Lebih sering daripada tidak, sumber daya DSC di luar kotak tidak cukup . Dalam hal ini, Anda dapat menulis skrip Anda sendiri untuk semua yang melampaui modul standar. Agar tidak menemukan kembali roda, Anda dapat menggunakan sumber daya DSC yang ditulis oleh pengembang lain. Misalnya, dari sini https://github.com/PowerShell/DscResources atau dari PSGallery
 
Cara menginstal sumber daya tambahan . Kami menggunakan cmdlet Instal-Modul . Menginstal sumber daya hanya menyalin file sumber daya di sepanjang salah satu jalur di variabel lingkungan $ env: PSModulePath . Sumber daya yang terinstal tidak terhubung secara otomatis selama kompilasi, jadi nanti kita juga akan menghubungkannya dalam konfigurasi itu sendiri.

Untuk menggunakan sumber daya, Anda harus menginstalnya secara lokal dan di server target. Di infrastruktur On-Premise, kebijakan keamanan biasanya melarang akses Internet untuk server. Dalam hal ini, server DSC tidak akan dapat memuat sumber daya tambahan dari sumber eksternal. Untuk menerbitkan arsip dengan modul, kami menggunakan repositori NuGet lokal atau server web biasa. Anda dapat menginstal sumber daya tambahan untuk server web dengan membongkar modul ke dalam direktori C: \ Program Files \ WindowsPowerShell \ Modules \.Ini
persis seperti yang dilakukan oleh cmdlet Instal-Modul.

Pada artikel kedua, kita akan melihat lebih dekat perbedaan antara pengaturan untuk mode Push dan Pull. 

Penguraian konfigurasi sederhana


Konfigurasi adalah deskripsi sederhana dan konsisten tentang apa yang perlu dilakukan di server. Ini adalah bagaimana konfigurasi DSC sederhana terlihat seperti: 

Configuration EnvironmentVariable_Path
{
param ()
Import-DscResource -ModuleName 'PSDscResources'
Node localhost
    {
        Environment CreatePathEnvironmentVariable
        {
            Name = 'TestPathEnvironmentVariable'
            Value = 'TestValue'
            Ensure = 'Present'
            Path = $true
            Target = @('Process', 'Machine')
        }
    }
}
EnvironmentVariable_Path -OutputPath:"C:\EnvironmentVariable_Path"

Sebagai contohnya, mari kita lihat apa yang terdiri dari konfigurasi.

Blok Konfigurasi adalah tipe khusus fungsi PowerShell yang menjelaskan apa yang ingin kita dapatkan. 

Di dalam blok berisi: 

  • blok param dengan parameter yang dapat digunakan secara internal; 
  • blokir dengan panggilan PowerShell tambahan. Di sini, di awal konfigurasi, kami selalu menjalankan Impor-Sumber Daya untuk menghubungkan sumber daya tambahan;
  • blok dengan pengaturan untuk server Node $ servername tertentu. 

Di dalam blok Node , kami menunjukkan sumber daya mana pada server tertentu yang akan kami konfigurasi. Dalam contoh di atas, ini membuat variabel lingkungan menggunakan sumber daya Lingkungan biasa.

Mari kita lihat sedikit lebih dalam dan lihat sintaks sumber daya tertentu melalui Get-DscResource -Name Environment -Syntax command:
 

PS C:\windows\system32> Get-DscResource -Name Environment -Syntax
Environment [String] #ResourceName
{
    Name = [string]
    [DependsOn = [string[]]]
    [Ensure = [string]{ Absent | Present }]
    [Path = [bool]]
    [PsDscRunAsCredential = [PSCredential]]
    [Value = [string]]
}

Dalam contoh ini: 

  • Nama - nama variabel lingkungan.
  • Di DependsOn, kami menentukan ketergantungan pada sumber daya lainnya. Penting untuk diingat bahwa operasi tidak akan dilakukan sampai sumber daya yang ditentukan di sini selesai. 
  • Di Pastikan, kami menentukan kondisi konfigurasi. Jika variabel seperti itu tidak ada, maka kita akan membuatnya; jika ada, maka sumber daya ini tidak akan dikonfigurasi.
  • The Jalan Menentukan apakah variabel lingkungan mengandung jalan. 
  • Dalam kredensial yang ditentukan PsDscRunAsCredential .
  • Nilai - nilai variabel lingkungan. 
  • The Sasaran dapat diindikasikan sehubungan siapa konfigurasi diterapkan.

Cara memulai kompilasi . Kami hanya memanggil konfigurasi dengan namanya dengan parameter yang diperlukan. Hasilnya akan berupa file mof, yang selanjutnya digunakan oleh mesin DSC untuk mengkonfigurasi server tertentu:
 
PS C:\windows\system32> EnvironmentVariable_Path -OutputPath:"C:\EnvironmentVariable_Path"
 
    Directory: C:\EnvironmentVariable_Path
 
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       25.02.2020     14:05           2172 localhost.mof

Konfigurasikan Manajer Konfigurasi Lokal


Manajer konfigurasi lokal bertanggung jawab untuk menerapkan konfigurasi yang kami kompilasi ke dalam file mof. Dialah yang memantau pelestarian negara yang ditentukan dalam konfigurasi. Jika sistem meninggalkan kondisi ini, LCM memanggil kode di sumber daya untuk memulihkan keadaan yang ditentukan. 

Mari kita lihat pengaturan manajer konfigurasi lokal melalui Get-DscLocalConfigurationManager:
 
PS C:\windows\system32> Get-DscLocalConfigurationManager
 
ActionAfterReboot              : ContinueConfiguration
AgentId                        : 1FB3A2EE-57C9-11EA-A204-58A023EF3A48
AllowModuleOverWrite           : False
CertificateID                  :
ConfigurationDownloadManagers  : {}
ConfigurationID                :
ConfigurationMode              : ApplyAndMonitor
ConfigurationModeFrequencyMins : 15
Credential                     :
DebugMode                      : {NONE}
DownloadManagerCustomData      :
DownloadManagerName            :
LCMCompatibleVersions          : {1.0, 2.0}
LCMState                       : Idle
LCMStateDetail                 :
LCMVersion                     : 2.0
StatusRetentionTimeInDays      : 10
SignatureValidationPolicy      : NONE
SignatureValidations           : {}
MaximumDownloadSizeMB          : 500
PartialConfigurations          :
RebootNodeIfNeeded             : False
RefreshFrequencyMins           : 30
RefreshMode                    : PUSH
ReportManagers                 : {}
ResourceModuleManagers         : {}
PSComputerName                 :

  • RefreshMode berisi mode operasi LCM - Push atau Pull. Kami akan berbicara lebih banyak tentang mode di artikel kedua.
  • ConfigurationMode menunjukkan mode aplikasi konfigurasi saat ini. Dalam kasus kami, ini adalah ApplyAndMonitor - berlaku dan lacak perubahan. Mode ApplyOnly juga tersedia (LCM tidak akan melacak perubahan konfigurasi) dan mode ApplyAndAutocorrect (LCM tidak hanya melacak perubahan, tetapi juga mengembalikannya ke konfigurasi dasar).
  • RebootNodeIfNeeded - dapat me-reboot server setelah konfigurasi selesai, jika perlu menerapkan pengaturan. 
  • ConfigurationModeFrequencyMins - Memperbaiki seberapa sering LCM akan memeriksa perubahan konfigurasi.

Ubah pengaturan LCM dalam meta-konfigurasi. Inilah contohnya:
 

Configuration LCMConfiguration
{
   Node Localhost
   {
       LocalConfigurationManager
       {
           RebootNodeIfNeeeded = $True
       }
   }
}
LCMConfiguration

Sama untuk versi terbaru WMF dengan komentar:


 
[DSCLocalConfigurationManager()]
Configuration LCMConfiguration
{
   param
   (
       [string[]]$Server = "localhost"
   )

 

#  LCM:
#  ,  
# : PUSH
#    30 
   Node $Server
   {
       Settings
       {
           RebootNodeIfNeeded = $True
           RefreshMode        = 'Push'
           RefreshFrequencyMins = 30
       }
   }
}


#   
LCMConfiguration -Server "localhost" -OutputPath "C:\DSC\MetaConfigurations\EnvironmentVariable_Path\"

Fitur konfigurasi metak . Saat menulis metakonfigurasi, kami menggunakan blok yang sama dengan konfigurasi DSC biasa. Pengecualian adalah blok internal LocalConfigurationManager (v4) atau atribut DSCLocalConfigurationManager (v5) untuk server tertentu. Mereka menggambarkan semua pengaturan yang diperlukan. 

Metaconfiguration juga dikompilasi menjadi file mof, tetapi untuk menggunakannya, cmdlet Set-DSCLocalConfigurationManager digunakan, dan bukan konfigurasi Start-DSCC.
 
PS C:\windows\system32> LCMConfiguration -OutputPath C:\EnvironmentVariable_Path\
 
    Directory: C:\EnvironmentVariable_Path
 
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       26.02.2020     20:05           1016 Localhost.meta.mof

 

PS C:\windows\system32> Set-DscLocalConfigurationManager -Path C:\EnvironmentVariable_Path\
PS C:\windows\system32> Get-DscLocalConfigurationManager
 
RebootNodeIfNeeded             : True

Secara teoritis, tidak ada yang mencegah kita dari menggabungkan konfigurasi LCM dan sumber daya konvensional dalam konfigurasi yang sama. Tetapi untuk kesederhanaan, disarankan agar penulisan dan aplikasi konfigurasi dan metakonfigurasi dipisahkan.

Konfigurasi Sebagian 


Konfigurasi Parsial - beberapa konfigurasi yang dijalankan berurutan satu demi satu. Mereka berguna ketika beberapa tim mengerjakan layanan. Setiap perintah menunjukkan pengaturan untuk bagian dari layanan, dan konfigurasi parsial kemudian menerapkan semua pengaturan secara berurutan. Dalam pengaturan LCM, kami menentukan konfigurasi parsial dalam Konfigurasi Partial

Dalam konfigurasi parsial, kita harus mempertimbangkan logika DSC langsung. Mesin tidak memungkinkan percabangan, sehingga sumber daya tambahan diperlukan untuk memenuhi berbagai kondisi. Kami akan menganalisis ini dengan beberapa contoh. 

Misalkan kita ingin menjamin pengiriman konfigurasi ke server dan melanjutkan sesuai dengan algoritma berikut:

  1. Pertama, periksa apakah modul yang diperlukan dipasang di server.
  2. Kami melakukan konfigurasi, yang akan membawa server ke keadaan yang diinginkan.

Beginilah bentuk konfigurasi metakonfigurasinya dengan beberapa konfigurasi berturut-turut di dalamnya:


#   
[DSCLocalConfigurationManager()]
configuration MetaPushConfig
{
param
   (
       [ValidateNotNullOrEmpty()]
       [string] $NodeName = 'localhost'
   )

 

   Node $NodeName
   {
 	
 #      LCM,    
       PartialConfiguration ModulesDownloadConfig
       {
               Description = 'Download and install modules'
               RefreshMode = 'Push'
       }

 

       #        
       PartialConfiguration ServerOSConfig
       {
               DependsOn = "[PartialConfiguration]ModulesDownloadConfig"
               Description = 'Configuration'
               RefreshMode = 'Push'
       }

 

       #   LCM
       Settings
       {
               RefreshMode        = 'Push'
               RefreshFrequencyMins = 30
               RebootNodeIfNeeded = $true
       }
   }
}

 
 

#  
MetaPushConfig -NodeName "NewServer.contoso.com" -OutputPath c:\DSC\MetaConfigurations

 

#      
$cred = (Get-Credential -UserName Administrator -Message "Enter admin credentials")

 

#  LCM   
Set-DscLocalConfigurationManager -ComputerName "NewServer.contoso.com" -Credential $cred -Path "c:\DSC\MetaConfigurations" -Verbose -Force

 

#  
Publish-DscConfiguration c:\DSC\Configurations\ModulesDownloadConfig -ComputerName "NewServer.contoso.com" -Credential $cred -Force
Publish-DscConfiguration c:\DSC\Configurations\ServerOSConfig -ComputerName "NewServer.contoso.com" -Credential $cred -Force

 

#    
Start-DscConfiguration -UseExisting -ComputerName "NewServer.contoso.com" -Credential $cred -Force -Verbose

Bagian pertama dari konfigurasi mengatakan Unduh dan instal modul : unduh dan instal sumber daya yang diperlukan. Bagian kedua dari ServerOSConfig membawa server ke keadaan yang diinginkan. Apa nuansa dengan kelurusan DSC di sini: 

  1. Jika bagian pertama dari konfigurasi awalnya mengembalikan FALSE dan selesai sepenuhnya, maka LCM tidak akan pergi ke konfigurasi kedua. Menurut logika DSC, pertama-tama Anda harus membawa server ke kondisi pertama yang dijelaskan. 
    Cara merawat: menjalankan konfigurasi dua kali atau mengotomatiskan seluruh proses dalam skrip.
  2. Jika server setelah menginstal komponen apa pun memerlukan reboot, maka konfigurasi tidak akan melangkah lebih jauh sampai kita sendiri me-reboot server. Bahkan jika kita memberi tahu LCM bahwa RebootNodeIfNeeeded = $ True, agen akan menunggu solusi kami selama konfigurasi.
    Cara merawat: sumber daya xPendingReboot datang untuk menyelamatkan , yang mengontrol kunci registri saat reboot. Sumber daya ini me-restart server untuk kita.

Berikut adalah contoh konfigurasi untuk mengunduh dan memasang sumber daya dalam skenario "berdarah perusahaan", ketika server tidak memiliki akses Internet. Ini mengasumsikan keberadaan server web, di mana sumber daya yang diunduh tersedia untuk semua orang melalui protokol http.


Configuration ModulesDownloadConfig
{
   param
   (
       [string[]]$Server
   )

 

   #   
   Import-DscResource -ModuleName "PSDesiredStateConfiguration"

 

   #  
   Node $Server
   {
       #  IE Security
       Registry DisableIEESC-Admin {
           Key = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}"
           ValueName = "IsInstalled"
           Ensure = "Present"
           ValueData = 0
           ValueType = "DWORD"
       }

 

       Registry DisableIEESC-User {
           Key = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}"
           ValueName = "IsInstalled"
           Ensure = "Present"
           ValueData = "0"
           ValueType = "DWORD"
       }

 

	
 #    ,    
       File CreateDistribDir {
           Ensure          = "present"
           DestinationPath = "C:\Install\PSModules"
           Type            = "Directory"
       }

 

	
 #   NetworkingDsc (<a href="https://www.powershellgallery.com/packages/NetworkingDsc/8.0.0-preview0004">https://www.powershellgallery.com/packages/NetworkingDsc/8.0.0-preview0004</a>),      
       Script NetworkingDscDownLoad {
           SetScript = { Invoke-WebRequest -Uri "http://repo.contoso.com/repo/modules/NetworkingDsc.zip" -OutFile "C:\Install\PSModules\NetworkingDsc.zip" }
           GetScript = { return @{ Result = Test-Path "C:\Install\PSModules\NetworkingDsc.zip"
               GetScript = $GetScript; SetScript = $SetScript; TestScript = $TestScript
               }
           }
           TestScript = { Test-Path "C:\Program Files\WindowsPowerShell\Modules\NetworkingDsc" }
       }

 

 #   NetworkingDsc  C:\Program Files\WindowsPowerShell\Modules
       Archive UnpackNetworkingDsc {
           Ensure = "Present"
           DependsOn = "[Script]NetworkingDscDownLoad"
           Path = "C:\Install\PSModules\NetworkingDsc.zip"
           Destination = "C:\Program Files\WindowsPowerShell\Modules\"
       }

 

 #   ComputerManagementDsc (<a href="https://www.powershellgallery.com/packages/ComputerManagementDsc/8.2.1-preview0001">https://www.powershellgallery.com/packages/ComputerManagementDsc/8.2.1-preview0001</a>),      
       Script ComputerManagementDscDownLoad {
           SetScript = { Invoke-WebRequest -Uri "http://repo.contoso.com/repo/modules/ComputerManagementDsc.zip" -OutFile "C:\Install\PSModules\ComputerManagementDsc.zip" }
           GetScript = { return @{ Result = Test-Path "C:\Install\PSModules\ComputerManagementDsc.zip"
               GetScript = $GetScript; SetScript = $SetScript; TestScript = $TestScript
               }
           }
           TestScript = { Test-Path "C:\Program Files\WindowsPowerShell\Modules\ComputerManagementDsc" }
       }

 

	
 #   ComputerManagementDsc  C:\Program Files\WindowsPowerShell\Modules
       Archive UnpackComputerManagementDsc {
           Ensure = "Present"
           DependsOn = "[Script]ComputerManagementDscDownLoad"
           Path = "C:\Install\PSModules\ComputerManagementDsc.zip"
           Destination = "C:\Program Files\WindowsPowerShell\Modules\"
       }

 

	
 #   xPendingReboot (<a href="https://www.powershellgallery.com/packages/xPendingReboot/0.4.0.0">https://www.powershellgallery.com/packages/xPendingReboot/0.4.0.0</a>),      
       Script xPendingRebootDownLoad {
           SetScript = { Invoke-WebRequest -Uri "http://repo.contoso.com/repo/modules/xPendingReboot.zip" -OutFile "C:\Install\PSModules\xPendingReboot.zip" }
           GetScript = { return @{ Result = Test-Path "C:\Install\PSModules\xPendingReboot.zip"
               GetScript = $GetScript; SetScript = $SetScript; TestScript = $TestScript
               }
           }
           TestScript = { Test-Path "C:\Program Files\WindowsPowerShell\Modules\xPendingReboot" }
       }

 

	
 #   xPendingReboot  C:\Program Files\WindowsPowerShell\Modules
       Archive UnpackxPendingReboot {
           Ensure = "Present"
           DependsOn = "[Script]xPendingRebootDownLoad"
           Path = "C:\Install\PSModules\xPendingReboot.zip"
           Destination = "C:\Program Files\WindowsPowerShell\Modules\"
       }
   }
}

Tentang keamanan


Minus lemak dari DSC di tanah adalah kurangnya akun Run As. Mekanisme ini dengan aman menyimpan akun dalam bentuk nama pengguna + "kata sandi garam" dan memasukkannya ke layanan, yang bertanggung jawab untuk otentikasi. Tanpa itu, DSC tidak dapat mengelola akun atas nama layanan lain. Dan jika kita perlu mengautentikasi di bawah akun dengan hak istimewa khusus, proses otomasi sangat rumit. Misalnya, ini akan menjadi kasus ketika memasukkan server ke domain.

Semua yang kami miliki:

  • kredensial disimpan dalam Teks Biasa,
  • kredensial terenkripsi hanya bekerja pada PC di mana mereka dihasilkan.

Dalam praktiknya, ada beberapa solusi. 


"Rintisan bertopik" baik ketika diprediksi perilaku server harus dipastikan.
Kami melakukan "rintisan" setelah konfigurasi server dalam beberapa kasus, jika kami menggunakan:

  • reboot (sumber xPendingReboot) 
  • transfer kredensial 
  • sumber daya lain yang dapat memengaruhi kinerja server sehubungan dengan reboot atau keamanan yang tidak direncanakan.

Untuk melakukan ini, buat dan terbitkan ulang konfigurasi TANPA blok yang berisi sumber daya xPendingReboot dan konfigurasi dengan kredensial.

Pendekatan ini hanya berlaku untuk skenario Dorong, karena Tarik cukup mudah dan tidak menyiratkan perubahan konfigurasi dengan cepat. Di artikel selanjutnya daribuldakovKami akan melihat lebih dekat pengaturan dan fitur yang bekerja di mode Push and Pull.

Dan juga datang untuk membahas nuansa teknologi DSC dan batas-batas penerapannya pada 28 Mei pukul 18.00 pada pertemuan online pertama komunitas Komunikasi DGTL Raiffeisenbank. Kami juga akan membahas cara membuat teman-teman ELK dan Exchange dan apa yang dapat dilakukan Microsoft Endpoint Manager dalam manajemen perangkat. Ini adalah registrasi untuk mitap .

All Articles