Sumber Daya DSC

Berlaku untuk Windows PowerShell 4.0 ke atas.

Gambaran Umum

Sumber Daya Konfigurasi Status yang Diinginkan (DSC) menyediakan blok penyusun untuk konfigurasi DSC. Sumber daya memaparkan properti yang dapat dikonfigurasi (skema) dan berisi fungsi skrip PowerShell yang dipanggil Configuration Manager Lokal (LCM) untuk "melakukannya".

Sumber daya dapat memodelkan sesuatu yang generik seperti file atau sesering pengaturan server IIS. Grup seperti sumber daya digabungkan ke dalam Modul DSC, yang mengatur semua file yang diperlukan ke struktur yang portabel dan menyertakan metadata untuk mengidentifikasi bagaimana sumber daya dimaksudkan untuk digunakan.

Setiap sumber daya memiliki *skema yang menentukan sintaks yang diperlukan untuk menggunakan sumber daya dalam Konfigurasi. Skema sumber daya dapat didefinisikan dengan cara berikut:

  • Schema.Mof file: Sebagian besar sumber daya menentukan skemanya dalam schema.mof file, menggunakan Format Objek Terkelola.
  • <Resource Name>.schema.psm1 file: Sumber Daya Komposit menentukan skemanya dalam <ResourceName>.schema.psm1 file menggunakan Blok Parameter.
  • <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.

Untuk mengambil sintaks untuk sumber daya DSC, gunakan cmdlet Get-DSCResource dengan parameter Sintaks . Penggunaan ini mirip dengan menggunakan Get-Command dengan parameter Sintaks untuk mendapatkan sintaks cmdlet. Output yang Anda lihat akan menampilkan templat yang digunakan untuk blok sumber daya untuk sumber daya yang Anda tentukan.

Get-DscResource -Syntax Service

Output yang Anda lihat akan mirip dengan output di bawah ini, meskipun sintaks sumber daya ini dapat berubah di masa mendatang. Seperti sintaks cmdlet, kunci yang terlihat dalam tanda kurung siku, bersifat opsional. Jenis menentukan jenis data yang diharapkan setiap kunci.

Catatan

Kunci Pastikan bersifat opsional karena defaultnya adalah "Ada".

Service [String] #ResourceName
{
    Name = [string]
    [BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
    [Credential = [PSCredential]]
    [Dependencies = [string[]]]
    [DependsOn = [string[]]]
    [Description = [string]]
    [DisplayName = [string]]
    [Ensure = [string]{ Absent | Present }]
    [Path = [string]]
    [PsDscRunAsCredential = [PSCredential]]
    [StartupType = [string]{ Automatic | Disabled | Manual }]
    [State = [string]{ Running | Stopped }]
}

Catatan

Di PowerShell versi di bawah 7.0, Get-DscResource tidak menemukan sumber daya DSC berbasis Kelas.

Di dalam Konfigurasi, blok sumber daya Layanan mungkin terlihat seperti ini untuk Memastikan bahwa layanan Spooler berjalan.

Catatan

Sebelum menggunakan sumber daya dalam Konfigurasi, Anda harus mengimpornya menggunakan Import-DSCResource.

Configuration TestConfig
{
    # It is best practice to always directly import resources, even if the
    # resource is a built-in resource.
    Import-DSCResource -Name Service
    Node localhost
    {
        # The name of this resource block, can be anything you choose, as l
        # ong as it is of type [String] as indicated by the schema.
        Service "Spooler - Running"
        {
            Name = "Spooler"
            State = "Running"
        }
    }
}

Konfigurasi dapat berisi beberapa instans dengan jenis sumber daya yang sama. Setiap instans harus diberi nama unik. Dalam contoh berikut, blok sumber daya Layanan kedua ditambahkan untuk mengonfigurasi layanan "DHCP".

Configuration TestConfig
{
    # It is best practice to always directly import resources, even if the
    # resource is a built-in resource.
    Import-DSCResource -Name Service
    Node localhost
    {
        # The name of this resource block, can be anything you choose, as
        # long as it is of type [String] as indicated by the schema.
        Service "Spooler - Running"
        {
            Name = "Spooler"
            State = "Running"
        }

        # To configure a second service resource block, add another Service
        # resource block and use a unique name.
        Service "DHCP - Running"
        {
            Name = "DHCP"
            State = "Running"
        }
    }
}

Catatan

Dimulai di PowerShell 5.0, IntelliSense ditambahkan untuk DSC. Fitur baru ini memungkinkan Anda menggunakan TAB dan Ctr+Space untuk melengkapi nama kunci secara otomatis.

Resource IntelliSense menggunakan Penyelesaian Tab

Jenis sumber daya

Windows dilengkapi dengan sumber daya bawaan dan Linux memiliki sumber daya khusus OS. Ada sumber daya untuk dependensi lintas simpul, sumber daya manajemen paket, serta sumber daya yang dimiliki dan dikelola komunitas. Anda dapat menggunakan langkah-langkah di atas untuk menentukan sintaks sumber daya ini dan cara menggunakannya. Halaman yang melayani sumber daya ini telah diarsipkan di bawah Referensi.

Sumber daya bawaan Windows

Sumber daya dependensi Lintas Node

Sumber daya Manajemen Paket

Sumber daya Linux