Tesztkészlet lekérése
A következőkre vonatkozik: Windows PowerShell 4.0, Windows PowerShell 5.0
A PowerShell-Desired State Configuration egy Get, Test és Set folyamat köré épül fel. A DSC-erőforrások mindegyike metódusokat tartalmaz az egyes műveletek végrehajtásához. A konfigurációkban erőforrásblokkokat határoz meg, amelyek olyan kulcsokat töltenek ki, amelyek az erőforrás Get, Test és Set metódusainak paramétereivé válnak.
Ez egy szolgáltatáserőforrás-blokk szintaxisa. A Szolgáltatás erőforrás konfigurálja a Windows-szolgáltatásokat.
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 }]
}
A Szolgáltatás erőforrás Get, Test és Set metódusai olyan paraméterblokkokkal rendelkeznek, amelyek elfogadják ezeket az értékeket.
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"
)
Megjegyzés
Az erőforrás meghatározásához használt nyelv és metódus határozza meg a Get, a Test és a Set metódus definiálási módját.
Mivel a Szolgáltatás erőforrás csak egy szükséges kulccsal rendelkezik (Name
), a szolgáltatásblokk típusú erőforrás a következőhöz hasonlóan egyszerű lehet:
Configuration TestConfig
{
Import-DSCResource -Name Service
Node localhost
{
Service "MyService"
{
Name = "Spooler"
}
}
}
A fenti konfiguráció lefordításakor a kulcshoz megadott értékek a .mof
létrehozott fájlban lesznek tárolva. További információ: MOF.
instance of MSFT_ServiceResource as $MSFT_ServiceResource1ref
{
SourceInfo = "::5::1::Service";
ModuleName = "PsDesiredStateConfiguration";
ResourceID = "[Service]MyService";
Name = "Spooler";
ModuleVersion = "1.0";
ConfigurationName = "Test";
};
Ha alkalmazva van, a Helyi Configuration Manager (LCM) beolvassa a "Spooler" értéket a .mof
fájlból, és továbbítja azt a Szolgáltatás erőforrás "MyService" példányának Lekérési, Tesztelési és Beállítási metódusok név paraméterének.
Lekérés
Az erőforrás Get metódusa lekéri az erőforrás állapotát a célcsomóponton konfigurálva. Ezt az állapotot a rendszer kivonattáblaként adja vissza. A kivonattábla kulcsai a konfigurálható értékek vagy paraméterek lesznek, amelyet az erőforrás elfogad.
A Get metódus közvetlenül a Get-DSCConfiguration parancsmagra képez le.
Híváskor Get-DSCConfiguration
az LCM az egyes erőforrások Get metódusát futtatja az aktuálisan alkalmazott konfigurációban. Az LCM a fájlban .mof
tárolt kulcsértékeket használja paraméterekként az egyes megfelelő erőforráspéldányokhoz.
Ez egy szolgáltatáserőforrás mintakimenete, amely konfigurálja a "Spooler" szolgáltatást.
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
A kimenet a Szolgáltatás erőforrás által konfigurálható aktuális értéktulajdonságokat jeleníti meg.
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 }]
}
Teszt
Az erőforrás tesztmetódusa határozza meg, hogy a célcsomópont jelenleg megfelel-e az erőforrás kívánt állapotának. A Teszt metódus visszaadja $true
vagy $false
csak azt jelzi, hogy a csomópont megfelelő-e. A Test-DSCConfiguration hívásakor az LCM meghívja az egyes erőforrások tesztelési metódusát az aktuálisan alkalmazott konfigurációban. Az LCM az ".mof" fájlban tárolt kulcsértékeket használja paraméterekként az egyes megfelelő erőforráspéldányokhoz.
Ha egy adott erőforrás tesztjének eredménye a $false
, Test-DSCConfiguration
$false
akkor a visszaadott érték azt jelzi, hogy a csomópont nem felel meg a követelményeknek. Ha az összes erőforrás tesztelési metódusa visszaadja $true
a értéket, Test-DSCConfiguration
a visszaadott $true
érték azt jelzi, hogy a csomópont megfelelő.
Test-DSCConfiguration
True
A PowerShell 5.0-tól kezdve a Részletes paraméter lett hozzáadva. A részletes okok Test-DSCConfiguration
megadása egy olyan objektum visszaadásához, amely a megfelelő és a nem megfelelő erőforrások eredményeinek gyűjteményeit tartalmazza.
Test-DSCConfiguration -Detailed
PSComputerName ResourcesInDesiredState ResourcesNotInDesiredState InDesiredState
-------------- ----------------------- -------------------------- --------------
localhost {[Service]Spooler} True
További információ: Test-DSCConfiguration.
Beállítás
Az erőforrás Set metódusa arra próbálja kényszeríteni a csomópontot, hogy megfeleljen az erőforrás kívánt állapotának. A Set metódusnak idempotensnek kell lennie, ami azt jelenti, hogy a Készlet többször is futtatható, és mindig ugyanazt az eredményt kapja hibák nélkül. A Start-DSCConfiguration futtatásakor az LCM az aktuálisan alkalmazott konfiguráció minden erőforrásán végigfut. Az LCM lekéri az aktuális erőforráspéldány kulcsértékeit a ".mof" fájlból, és paraméterekként használja őket a Test metódushoz. Ha a Teszt metódus ad vissza $true
, a csomópont megfelel az aktuális erőforrásnak, és a Set metódus ki lesz hagyva. Ha a teszt ad vissza $false
, a csomópont nem megfelelő. Az LCM paraméterként továbbítja az erőforráspéldány kulcsértékeit az erőforrás Set metódusának, és visszaállítja a csomópontot a megfelelőségre.
A Részletes és a Várakozás paraméterek megadásával watch a Start-DSCConfiguration
parancsmag állapotát. Ebben a példában a Csomópont már megfelelő. A Verbose
kimenet azt jelzi, hogy a Set metódus kimaradt.
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
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: