Sumber Daya DSC
Gambaran Umum
Sumber Daya DSC menyediakan antarmuka standar untuk mengelola pengaturan sistem. Sumber Daya DSC menentukan properti yang dapat Anda kelola dan berisi kode PowerShell yang Invoke-DscResource
memanggil untuk "melakukannya."
Sumber Daya DSC dapat memodelkan sesuatu yang generik seperti file atau sesering pengaturan server IIS. Grup Sumber Daya DSC terkait digabungkan ke dalam modul PowerShell. Modul menyediakan paket portabel berversi untuk Sumber Daya DSC dan menyertakan metadata dan dokumentasi tentangnya.
Setiap Sumber Daya DSC memiliki skema yang menentukan sintaks yang diperlukan untuk menggunakan Sumber Daya DSC dengan Invoke-DscResource
atau dalam Konfigurasi. Skema Sumber Daya DSC ditentukan dengan cara berikut:
<Resource Name>.psm1
file: Sumber Daya DSC berbasis kelas menentukan skemanya dalam definisi kelas. Item sintaks ditandai sebagai properti kelas. Untuk informasi selengkapnya, lihat about_Classes.Schema.Mof
file: Sumber Daya DSC berbasis MOF menentukan skemanya dalamschema.mof
file, menggunakan Format Objek Terkelola.
Untuk mengambil sintaks untuk Sumber Daya DSC, gunakan cmdlet Get-DSCResource dengan parameter Sintaks . Ini seperti menggunakan Get-Command dengan parameter Sintaks untuk mendapatkan sintaks cmdlet. Output menunjukkan templat yang digunakan untuk blok Sumber Daya DSC dalam Konfigurasi DSC.
Get-DscResource -Syntax Service
Service [String] #ResourceName
{
Name = [string]
[BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
[Credential = [PSCredential]]
[Dependencies = [string[]]]
[DependsOn = [string[]]]
[Description = [string]]
[DesktopInteract = [bool]]
[DisplayName = [string]]
[Ensure = [string]{ Absent | Present }]
[Path = [string]]
[PsDscRunAsCredential = [PSCredential]]
[StartupTimeout = [UInt32]]
[StartupType = [string]{ Automatic | Disabled | Manual }]
[State = [string]{ Ignore | Running | Stopped }]
[TerminateTimeout = [UInt32]]
}
Seperti sintaks cmdlet, kunci dalam tanda kurung siku bersifat opsional. Jenis menentukan jenis data yang diharapkan setiap kunci.
Untuk memastikan bahwa Spooler
layanan berjalan:
$SharedDscParameters = @{
Name = 'Service'
ModuleName = 'PSDscResources'
Property = @{
Name = 'Spooler'
State = 'Running'
}
}
$TestResult = Invoke-DscResource -Method Test @SharedDscParameters
if ($TestResult.InDesiredState) {
Write-Host -ForegroundColor Cyan -Object 'Already in desired state.'
} else {
Write-Host -ForegroundColor Magenta -Object 'Enforcing desired state.'
Invoke-DscResource -Method Set @SharedDscParameters
}
Variabel $SharedDscParameters
adalah tabel hash yang berisi parameter yang digunakan saat memanggil metode Uji dan Atur sumber daya dengan Invoke-DscResource
. Panggilan pertama untuk Invoke-DscResource
menggunakan metode Uji untuk memverifikasi apakah Spooler
layanan berjalan dan menyimpan hasilnya $TestResult
dalam variabel.
Langkah selanjutnya tergantung pada apakah layanan sudah dalam status yang diinginkan. Praktik terbaik adalah selalu memverifikasi status yang diinginkan sebelum memberlakukan dan hanya memanggil metode Set jika diperlukan. Dalam contoh, skrip menulis pesan ke konsol tentang apakah Sumber Daya DSC berada dalam status yang diinginkan. Kemudian, jika layanan tidak berjalan, layanan akan memanggil Invoke-DscResource
dengan metode Set untuk memberlakukan status yang diinginkan.