about_DesiredStateConfiguration
KORTE BESCHRIJVING
Hier vindt u een korte inleiding tot de functie PowerShell Desired State Configuration (DSC).
LANGE BESCHRIJVING
DSC is een beheerplatform in PowerShell waarmee u configuratiegegevens voor softwareservices kunt implementeren en beheren en de omgeving kunt beheren waarin deze services worden uitgevoerd.
DSC biedt een set PowerShell-taalextensies, nieuwe cmdlets en resources die u kunt gebruiken om declaratief op te geven hoe de status van uw softwareomgeving moet worden geconfigureerd. Het biedt ook een middel om bestaande configuraties te onderhouden en te beheren.
DSC is geïntroduceerd in PowerShell 4.0.
Zie Overzicht van PowerShell Desired State Configuration in de TechNet-bibliotheek voor gedetailleerde informatie over DSC.
DSC-RESOURCES ONTWIKKELEN MET KLASSEN
Vanaf PowerShell 5.0 kunt u DSC-resources ontwikkelen met behulp van klassen. Zie about_Classes en Een aangepaste DSC-resource schrijven met PowerShell-klassen op Microsoft TechNet voor meer informatie.
DSC GEBRUIKEN
Als u DSC wilt gebruiken om uw omgeving te configureren, definieert u eerst een PowerShell-scriptblok met behulp van het trefwoord Configuratie, gevolgd door een id, die op zijn beurt wordt gevolgd door het paar accolades die het blok afbakenen. In het configuratieblok kunt u knooppuntblokken definiëren die de gewenste configuratiestatus opgeven voor elk knooppunt (computer) in de omgeving. Een knooppuntblok begint met het trefwoord Knooppunt, gevolgd door de naam van de doelcomputer, wat een variabele kan zijn. Na de computernaam komen de accolades waarmee het knooppuntblok wordt gescheiden. In het knooppuntblok kunt u resourceblokken definiëren om specifieke resources te configureren. Een resourceblok begint met de typenaam van de resource, gevolgd door de id die u voor dat blok wilt opgeven, gevolgd door de accolades die het blok van elkaar afbakenen, zoals wordt weergegeven in het volgende voorbeeld.
Configuration MyWebConfig {
# Parameters are optional
param ($MachineName, $WebsiteFilePath)
# A Configuration block can have one or more Node blocks
Node $MachineName
{
# Next, specify one or more resource blocks
# WindowsFeature is one of the resources you can use in a Node block
# This example ensures the Web Server (IIS) role is installed
WindowsFeature IIS
{
# To ensure that the role is not installed, set Ensure to "Absent"
Ensure = "Present"
Name = "Web-Server" # Use the Name property from Get-WindowsFeature
}
# You can use the File resource to create files and folders
# "WebDirectory" is the name you want to use to refer to this instance
File WebDirectory
{
Ensure = "Present" # You can also set Ensure to "Absent"
Type = "Directory" # Default is "File"
Recurse = $true
SourcePath = $WebsiteFilePath
DestinationPath = "C:\inetpub\wwwroot"
# Ensure that the IIS block is successfully run first before
# configuring this resource
DependsOn = "[WindowsFeature]IIS" # Use for dependencies
}
}
}
Als u een configuratie wilt maken, roept u het configuratieblok op dezelfde manier aan als u een PowerShell-functie aanroept, waarbij u alle verwachte parameters doorgeeft die u mogelijk hebt gedefinieerd (twee in het bovenstaande voorbeeld). In dit geval bijvoorbeeld:
MyWebConfig -MachineName "TestMachine" -WebsiteFilePath `
"\\filesrv\WebFiles" -OutputPath "C:\Windows\system32\temp"
# OutputPath is optional
Hiermee wordt een MOF-bestand per knooppunt gegenereerd op het pad dat u opgeeft. Deze MOF-bestanden geven de gewenste configuratie voor elk knooppunt op. Gebruik vervolgens de volgende cmdlet om de MOF-configuratiebestanden te parseren, de bijbehorende configuratie van elk knooppunt te verzenden en deze configuraties uit te voeren. Houd er rekening mee dat u geen afzonderlijk MOF-bestand hoeft te maken voor DSC-resources op basis van klassen.
Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\temp"
DSC GEBRUIKEN OM DE CONFIGURATIESTATUS TE ONDERHOUDEN
Met DSC is de configuratie idempotent. Dit betekent dat als u DSC gebruikt om dezelfde configuratie meerdere keren uit te voeren, de resulterende configuratiestatus altijd hetzelfde is. Als u vermoedt dat knooppunten in uw omgeving mogelijk van de gewenste configuratiestatus zijn afgelopen, kunt u daarom dezelfde DSC-configuratie opnieuw uitvoeren om ze terug te brengen naar de gewenste status. U hoeft het configuratiescript niet te wijzigen om alleen de resources aan te pakken waarvan de status is afgelopen van de gewenste status.
In het volgende voorbeeld ziet u hoe u kunt controleren of de werkelijke status van de configuratie op een bepaald knooppunt is afgelopen van de laatste DSC-configuratie die op het knooppunt is uitgevoerd. In dit voorbeeld controleren we de configuratie van de lokale computer.
$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session
INGEBOUWDE DSC-RESOURCES
U kunt de volgende ingebouwde resources gebruiken in uw configuratiescripts:
Name | Eigenschappen |
---|---|
File | {DestinationPath, Kenmerken, Controlesom, Inhoud...} |
Archiveren | {Doel, Pad, Controlesom, Referentie...} |
Omgeving | {Name, DependsOn, Ensure, Path...} |
Groep | {GroupName, Credential, DependsOn, Description...} |
Logboek | {Message, DependsOn, PsDscRunAsCredential} |
Pakket | {Naam, Pad, ProductId, Argumenten...} |
Register | {Key, ValueName, DependsOn, Ensure...} |
Script | {GetScript, SetScript, TestScript, Credential...} |
Service | {Name, BuiltInAccount, Credential, Dependencies...} |
Gebruiker | {UserName, DependsOn, Description, Disabled...} |
WaitForAll | {NodeName, ResourceName, DependsOn, PsDscRunAsC...} |
WaitForAny | {NodeName, ResourceName, DependsOn, PsDscRunAsC...} |
WaitForSome | {NodeCount, NodeName, ResourceName, DependsOn...} |
WindowsFeature | {Name, Credential, DependsOn, Ensure...} |
WindowsOptionalFeature | {Name, DependsOn, Ensure, LogLevel...} |
WindowsProcess | {Argumenten, Pad, Referentie, DependsOn...} |
Voer de cmdlet Get-DscResource uit om een lijst met beschikbare DSC-resources op uw systeem op te halen.
In het voorbeeld in dit onderwerp ziet u hoe u de resources Bestand en WindowsFeature gebruikt. Als u alle eigenschappen wilt zien die u met een resource kunt gebruiken, voegt u de cursor in het trefwoord van de resource (bijvoorbeeld Bestand) in het configuratiescript in PowerShell ISE in, houdt u Ctrl ingedrukt en drukt u op de spatiebalk.
MEER BRONNEN ZOEKEN
U kunt veel andere beschikbare DSC-resources downloaden, installeren en er meer over te weten komen die zijn gemaakt door de PowerShell- en DSC-gebruikerscommunity en door Microsoft. Ga naar de PowerShell Gallery om te bladeren en meer te weten te komen over beschikbare DSC-resources.
ZIE OOK
Overzicht van PowerShell Desired State Configuration
Ingebouwde PowerShell-Desired State Configuration-resources
Aangepaste PowerShell-Desired State Configuration-resources bouwen