Megosztás:


DSC-erőforrások

Áttekintés

A DSC-erőforrások szabványos felületet biztosítanak a rendszer beállításainak kezeléséhez. A DSC-erőforrások olyan tulajdonságokat határoznak meg, amelyeket kezelhet, és tartalmazza azokat a PowerShell-kódot, amelyek Invoke-DscResource meghívják, hogy "így legyen".

A DSC-erőforrások fájlként vagy IIS-kiszolgálóbeállításként is modellezhetnek valamit. A kapcsolódó DSC-erőforrások csoportjai PowerShell-modulokba vannak kombinálva. A modulok hordozható, verziószámozott csomagot biztosítanak a DSC-erőforrásokhoz, és metaadatokat és dokumentációt tartalmaznak róluk.

Minden DSC-erőforrás rendelkezik egy sémával, amely meghatározza a DSC-erőforrás Invoke-DscResource vagy konfigurációsvaló használatához szükséges szintaxist. A DSC-erőforrás sémája a következő módokon van definiálva:

  • <Resource Name>.psm1 fájl: Az osztályalapú DSC-erőforrások az osztálydefinícióban határozzák meg a sémájukat. A szintaxiselemek osztálytulajdonságokként vannak jelölve. További információ: about_Classes.
  • Schema.Mof fájl: Az MOF-alapú DSC-erőforrások schema.mof fájlban határozzák meg a sémájukat felügyelt objektumformátumhasználatával.

DSC-erőforrás szintaxisának lekéréséhez használja a Get-DSCResource parancsmagot a Szintaxis paraméterrel. Ez olyan, mint a Get-Command használata a Szintaxis paraméterrel a parancsmag szintaxisának lekéréséhez. A kimenet megjeleníti a DSC-erőforrásblokkhoz használt sablont egy DSC-konfigurációban.

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]]
}

A parancsmag szintaxisához hasonlóan a szögletes zárójelekben kulcsok nem kötelezőek. A típusok megadják az egyes kulcsok által várt adattípust.

Annak biztosítása, hogy a Spooler szolgáltatás fut:

$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
}

A $SharedDscParameters változó egy kivonattáblázat, amely a teszt meghívásakor használt paramétereket tartalmazza, és az erőforrás metódusainak beállítása Invoke-DscResource. A Invoke-DscResource első hívása a Test metódussal ellenőrzi, hogy a Spooler szolgáltatás fut-e, és az eredményt a $TestResult változóban tárolja-e.

A következő lépés attól függ, hogy a szolgáltatás már a kívánt állapotban van-e. Ajánlott mindig ellenőrizni a kívánt állapotot a kényszerítés előtt, és csak szükség esetén meghívni a Set metódust. A példában a szkript egy üzenetet ír a konzolnak arról, hogy a DSC-erőforrás a kívánt állapotban van-e. Ezután, ha a szolgáltatás nem fut, meghívja Invoke-DscResource a Set metódussal a kívánt állapot kényszerítéséhez.