Prostředky DSC
Přehled
Prostředky DSC poskytují standardizované rozhraní pro správu nastavení systému. Prostředek DSC definuje vlastnosti, které můžete spravovat, a obsahuje kód PowerShellu, který Invoke-DscResource
volá , aby to tak bylo.
Prostředek DSC může modelovat něco tak obecného, jako je soubor nebo tak specifické, jako je nastavení serveru SLUŽBY IIS. Skupiny souvisejících prostředků DSC se kombinují do modulů PowerShellu. Moduly poskytují přenosný balíček s verzemi pro prostředky DSC a obsahují metadata a dokumentaci k nim.
Každý prostředek DSC má schéma, které určuje syntaxi potřebnou k použití prostředku DSC s Invoke-DscResource
konfigurací nebo v konfiguraci. Schéma prostředku DSC se definuje následujícími způsoby:
<Resource Name>.psm1
file: Prostředky DSC založené na třídách definují své schéma v definici třídy. Položky syntaxe se označují jako vlastnosti třídy. Další informace najdete v tématu about_Classes.Schema.Mof
file: Prostředky DSC založené na MOF definují své schéma vschema.mof
souboru pomocí formátu spravovaného objektu.
Pokud chcete načíst syntaxi prostředku DSC, použijte rutinu Get-DSCResource s parametrem Syntax . To je jako použití příkazu Get-Command s parametrem Syntax k získání syntaxe rutiny. Výstup ukazuje šablonu použitou pro blok prostředků DSC v konfiguraci 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]]
}
Stejně jako syntaxe rutin jsou klávesy v hranatých závorkách volitelné. Typy určují datový typ, který každý klíč očekává.
Pokud chcete zajistit, že Spooler
je služba spuštěná:
$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
}
Proměnná $SharedDscParameters
je tabulka hash obsahující parametry použité při volání metod Test a Set prostředku pomocí Invoke-DscResource
. První volání Invoke-DscResource
používá metodu Test k ověření, zda Spooler
je služba spuštěná, a uloží výsledek do $TestResult
proměnné.
Další krok závisí na tom, jestli je služba již v požadovaném stavu. Osvědčeným postupem je vždy před vynucováním ověřit požadovaný stav a volat metodu Set pouze v případě potřeby. V tomto příkladu skript zapíše do konzoly zprávu o tom, jestli je prostředek DSC v požadovaném stavu. Pak, pokud služba není spuštěná, volá Invoke-DscResource
metodu Set k vynucení požadovaného stavu.