Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przegląd
Zasoby DSC zapewniają standardowy interfejs do zarządzania ustawieniami systemu. Zasób DSC definiuje właściwości, którymi można zarządzać, i zawiera kod programu PowerShell, który Invoke-DscResource wywołuje polecenie "make it so".
Zasób DSC może modelować coś tak ogólnego jak plik lub jako określone jako ustawienie serwera USŁUG IIS. Grupy powiązanych zasobów DSC są łączone w moduły programu PowerShell. Moduły udostępniają przenośny, wersjonowany pakiet dla zasobów DSC oraz zawierają metadane i dokumentację na ich temat.
Każdy zasób DSC ma schemat określający składnię wymaganą do używania zasobu DSC z Invoke-DscResource lub w Configuration. Schemat zasobu DSC jest definiowany w następujący sposób:
-
<Resource Name>.psm1plik: Zasoby DSC oparte na klasach definiują swój schemat w definicji klasy. Elementy składni są oznaczane jako właściwości klasy. Aby uzyskać więcej informacji, zobacz about_Classes. -
Schema.Mofplik: Zasoby DSC oparte na moF definiują swój schemat w plikuschema.mofprzy użyciu Managed Object Format.
Aby pobrać składnię zasobu DSC, użyj polecenia cmdlet Get-DSCResource z parametrem składni. Jest to podobne do używania Get-Command z parametrem składni w celu pobrania składni polecenia cmdlet. Dane wyjściowe przedstawiają szablon używany do bloku zasobów DSC w konfiguracji 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]]
}
Podobnie jak składnia polecenia cmdlet, klucze w nawiasach kwadratowych są opcjonalne. Typy określają typ danych, których oczekuje każdy klucz.
Aby upewnić się, że usługa Spooler jest uruchomiona:
$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
}
Zmienna $SharedDscParameters to tabela skrótów zawierająca parametry używane podczas wywoływania Test i Set metod zasobu za pomocą Invoke-DscResource. Pierwsze wywołanie Invoke-DscResource używa metody Test w celu sprawdzenia, czy usługa Spooler jest uruchomiona i zapisuje wynik w zmiennej $TestResult.
Następny krok zależy od tego, czy usługa jest już w żądanym stanie. Najlepszym rozwiązaniem jest zawsze weryfikowanie żądanego stanu przed wymuszaniem i wywoływanie metody Set tylko wtedy, gdy jest to wymagane. W tym przykładzie skrypt zapisuje komunikat w konsoli o tym, czy zasób DSC jest w żądanym stanie. Następnie, jeśli usługa nie jest uruchomiona, wywołuje Invoke-DscResource z metodą Set w celu wymuszenia żądanego stanu.