Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Panoramica
Le risorse DSC forniscono un'interfaccia standardizzata per la gestione delle impostazioni di un sistema. Una risorsa DSC definisce le proprietà che è possibile gestire e contiene il codice di PowerShell che Invoke-DscResource chiamate a "effettuarlo".
Una risorsa DSC può modellare qualcosa di generico come un file o come un'impostazione specifica del server IIS. I gruppi di risorse DSC correlate vengono combinati in moduli di PowerShell. I moduli forniscono un pacchetto portabile con controllo delle versioni per le risorse DSC e includono metadati e documentazione su di essi.
Ogni risorsa DSC ha uno schema che determina la sintassi necessaria per usare la risorsa DSC con Invoke-DscResource o in una configurazione . Lo schema di una risorsa DSC viene definito nei modi seguenti:
-
<Resource Name>.psm1file: le risorse DSC basate su classi definiscono lo schema nella definizione della classe. Gli elementi della sintassi vengono indicati come proprietà della classe. Per altre informazioni, vedere about_Classes. -
Schema.Moffile: le risorse DSC basate su MOF definiscono lo schema in un file dischema.mof, usando managed object format.
Per recuperare la sintassi per una risorsa DSC, usare il cmdlet Get-DSCResource con il parametro sintassi . È come usare Get-Command con il parametro sintassi per ottenere la sintassi dei cmdlet. L'output mostra il modello usato per un blocco di risorse DSC in una configurazione 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]]
}
Analogamente alla sintassi dei cmdlet, le chiavi tra parentesi quadre sono facoltative. I tipi specificano il tipo di dati previsto per ogni chiave.
Per assicurarsi che il servizio Spooler sia in esecuzione:
$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
}
La variabile $SharedDscParameters è una tabella hash contenente i parametri usati quando si chiamano i metodi Test e Set della risorsa con Invoke-DscResource. La prima chiamata a Invoke-DscResource usa il metodo test per verificare se il servizio Spooler è in esecuzione e archivia il risultato nella variabile $TestResult.
Il passaggio successivo dipende dal fatto che il servizio sia già nello stato desiderato. È consigliabile verificare sempre lo stato desiderato prima di applicare e chiamare solo il metodo Set quando necessario. Nell'esempio lo script scrive un messaggio nella console relativa al fatto che la risorsa DSC si trova nello stato desiderato. Quindi, se il servizio non è in esecuzione, chiama Invoke-DscResource con il metodo Set per applicare lo stato desiderato.