Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Windows PowerShell 4.0, Windows PowerShell 5.0
Konfigurasi Status yang Diinginkan PowerShell dibangun di sekitar proses Get, Test, dan Set . Sumber daya DSC masing-masing berisi metode untuk menyelesaikan setiap operasi ini. Dalam Konfigurasi, Anda menentukan blok sumber daya untuk mengisi kunci yang menjadi parameter untuk metode Get, Test, dan Set sumber daya.
Ini adalah sintaks untuk blok sumber daya Layanan . Sumber daya Layanan mengonfigurasi layanan Windows.
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 }]
}
Metode Get, Test, dan Set dari sumber daya Layanan akan memiliki blok parameter yang menerima nilai ini.
param
(
[parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[System.String]
$Name,
[System.String]
[ValidateSet("Automatic", "Manual", "Disabled")]
$StartupType,
[System.String]
[ValidateSet("LocalSystem", "LocalService", "NetworkService")]
$BuiltInAccount,
[System.Management.Automation.PSCredential]
[ValidateNotNull()]
$Credential,
[System.String]
[ValidateSet("Running", "Stopped")]
$State="Running",
[System.String]
[ValidateNotNullOrEmpty()]
$DisplayName,
[System.String]
[ValidateNotNullOrEmpty()]
$Description,
[System.String]
[ValidateNotNullOrEmpty()]
$Path,
[System.String[]]
[ValidateNotNullOrEmpty()]
$Dependencies,
[System.String]
[ValidateSet("Present", "Absent")]
$Ensure="Present"
)
Nota
Bahasa dan metode yang digunakan untuk menentukan sumber daya menentukan bagaimana metode Get, Test, dan Set akan ditentukan.
Karena sumber daya Layanan hanya memiliki satu kunci yang diperlukan (Name), sumber daya blok layanan bisa sesederhana ini:
Configuration TestConfig
{
Import-DSCResource -Name Service
Node localhost
{
Service "MyService"
{
Name = "Spooler"
}
}
}
Saat Anda mengkompilasi Konfigurasi di atas, nilai yang Anda tentukan untuk kunci disimpan dalam .mof file yang dihasilkan. Untuk informasi selengkapnya, lihat MOF.
instance of MSFT_ServiceResource as $MSFT_ServiceResource1ref
{
SourceInfo = "::5::1::Service";
ModuleName = "PsDesiredStateConfiguration";
ResourceID = "[Service]MyService";
Name = "Spooler";
ModuleVersion = "1.0";
ConfigurationName = "Test";
};
Saat diterapkan, Local Configuration Manager (LCM) akan membaca nilai "Spooler" dari .mof file, dan meneruskannya ke parameter Name dari metode Get, Test, dan Set untuk instans "MyService" dari sumber daya Layanan .
Peroleh
Metode Get sumber daya, mengambil status sumber daya saat dikonfigurasi pada Node target. Status ini dikembalikan sebagai hashtable. Kunci hashtable akan menjadi nilai atau parameter yang dapat dikonfigurasi, yang diterima sumber daya.
Metode Get memetakan langsung ke cmdlet Get-DSCConfiguration .
Saat Anda memanggil Get-DSCConfiguration, LCM menjalankan metode Get dari setiap sumber daya dalam konfigurasi yang saat ini diterapkan. LCM menggunakan nilai kunci yang disimpan dalam .mof file sebagai parameter untuk setiap instans sumber daya yang sesuai.
Ini adalah contoh output dari sumber daya Layanan yang mengonfigurasi layanan "Spooler".
ConfigurationName : Test
DependsOn :
ModuleName : PsDesiredStateConfiguration
ModuleVersion : 1.1
PsDscRunAsCredential :
ResourceId : [Service]Spooler
SourceInfo :
BuiltInAccount : LocalSystem
Credential :
Dependencies : {RPCSS, http}
Description : This service spools print jobs and handles interaction with the printer. If you turn off
this service, you won't be able to print or see your printers.
DisplayName : Print Spooler
Ensure :
Name : Spooler
Path : C:\WINDOWS\System32\spoolsv.exe
StartupType : Automatic
State : Running
Status :
PSComputerName :
CimClassName : MSFT_ServiceResource
Output menunjukkan properti nilai saat ini yang dapat dikonfigurasi oleh sumber daya Layanan .
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 }]
}
Test
Metode Pengujian sumber daya menentukan apakah simpul target saat ini sesuai dengan status sumber daya yang diinginkan. Metode Pengujian mengembalikan $true atau $false hanya untuk menunjukkan apakah Node sesuai. Saat Anda memanggil Test-DSCConfiguration, LCM memanggil metode Pengujian setiap sumber daya dalam konfigurasi yang saat ini diterapkan. KPK menggunakan nilai kunci yang disimpan dalam file ".mof" sebagai parameter untuk setiap instans sumber daya yang sesuai.
Jika hasil Pengujian sumber daya individu adalah $false, Test-DSCConfiguration mengembalikan $false yang menunjukkan bahwa Node tidak sesuai. Jika semua metode Pengujian sumber daya mengembalikan $true, Test-DSCConfiguration kembali $true untuk menunjukkan bahwa Node sesuai.
Test-DSCConfiguration
True
Dimulai di PowerShell 5.0, parameter Detail ditambahkan. Menentukan penyebab Test-DSCConfigurationterperinci untuk mengembalikan objek yang berisi kumpulan hasil untuk sumber daya yang sesuai dan tidak sesuai.
Test-DSCConfiguration -Detailed
PSComputerName ResourcesInDesiredState ResourcesNotInDesiredState InDesiredState
-------------- ----------------------- -------------------------- --------------
localhost {[Service]Spooler} True
Untuk informasi selengkapnya, lihat Test-DSCConfiguration.
Menetapkan
Metode Set sumber daya mencoba memaksa Node agar sesuai dengan status sumber daya yang diinginkan. Metode Set dimaksudkan untuk menjadi idempoten, yang berarti Set dapat dijalankan beberapa kali dan selalu mendapatkan hasil yang sama tanpa kesalahan. Saat Anda menjalankan Start-DSCConfiguration, LCM berputar melalui setiap sumber daya dalam konfigurasi yang diterapkan saat ini. LCM mengambil nilai kunci untuk instans sumber daya saat ini dari file ".mof" dan menggunakannya sebagai parameter untuk metode Pengujian . Jika metode Pengujian mengembalikan $true, Node sesuai dengan sumber daya saat ini, dan metode Set dilewati. Jika Pengujian mengembalikan $false, Node tidak sesuai. LCM meneruskan nilai kunci instans sumber daya sebagai parameter ke metode Set sumber daya, mengembalikan Node ke kepatuhan.
Dengan menentukan parameter Verbose dan Wait , Anda dapat melihat kemajuan Start-DSCConfiguration cmdlet. Dalam contoh ini, Node sudah sesuai. Output Verbose menunjukkan bahwa metode Set dilewati.
PS> Start-DSCConfiguration -Verbose -Wait -UseExisting
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' =
ApplyConfiguration,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' =
root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer SERVER01 with user sid
S-1-5-21-124525095-708259637-1543119021-1282804.
VERBOSE: [SERVER01]: [] Starting consistency engine.
VERBOSE: [SERVER01]: [] Checking consistency for current configuration.
VERBOSE: [SERVER01]: [DSCEngine] Importing the module
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\PSDesiredStateConfiguration\DscResources\MSFT_ServiceResource\MSFT
_ServiceResource.psm1 in force mode.
VERBOSE: [SERVER01]: LCM: [ Start Resource ] [[Service]Spooler]
VERBOSE: [SERVER01]: LCM: [ Start Test ] [[Service]Spooler]
VERBOSE: [SERVER01]: [[Service]Spooler] Importing the module MSFT_ServiceResource in
force mode.
VERBOSE: [SERVER01]: LCM: [ End Test ] [[Service]Spooler] in 0.2540 seconds.
VERBOSE: [SERVER01]: LCM: [ Skip Set ] [[Service]Spooler]
VERBOSE: [SERVER01]: LCM: [ End Resource ] [[Service]Spooler]
VERBOSE: [SERVER01]: [] Consistency check completed.
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 1.379 seconds