Bagikan melalui


Sumber Daya DSC

Ikhtisar

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 sebagai file atau sekhusus pengaturan server IIS. Grup Sumber Daya DSC terkait digabungkan ke dalam modul PowerShell. Modul menyediakan paket portabel versi 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 didefinisikan dengan cara berikut:

  • file <Resource Name>.psm1: Sumber Daya DSC berbasis kelas menentukan skemanya dalam definisi kelas. Item sintaks ditandai sebagai properti kelas. Untuk informasi selengkapnya, lihat about_Classes.
  • file Schema.Mof: Sumber Daya DSC berbasis MOF menentukan skemanya dalam file schema.mof, menggunakan Managed Object Format.

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 kurung siku bersifat opsional. Jenis menentukan jenis data yang diharapkan setiap kunci.

Untuk memastikan bahwa layanan Spooler 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 Test dan Set sumber daya dengan Invoke-DscResource. Panggilan pertama ke Invoke-DscResource menggunakan metode Test untuk memverifikasi apakah layanan Spooler berjalan dan menyimpan hasilnya dalam variabel $TestResult.

Langkah selanjutnya tergantung pada apakah layanan sudah dalam keadaan 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 memanggil Invoke-DscResource dengan metode Set untuk memberlakukan status yang diinginkan.