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 v schema.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.