Afhankelijkheden van meerdere knooppunten opgeven
Van toepassing op: Windows PowerShell 5.0
DSC biedt speciale resources, WaitForAll, WaitForAny en WaitForSome die kunnen worden gebruikt in configuraties om afhankelijkheden op te geven van configuraties op andere knooppunten. Het gedrag van deze resources is als volgt:
- WaitForAll: slaagt als de opgegeven resource de gewenste status heeft op alle doelknooppunten die zijn gedefinieerd in de eigenschap NodeName .
- WaitForAny: slaagt als de opgegeven resource de gewenste status heeft op ten minste een van de doelknooppunten die zijn gedefinieerd in de eigenschap NodeName .
- WaitForSome: hiermee geeft u een eigenschap NodeCount op naast de eigenschap NodeName . De resource slaagt als de resource de gewenste status heeft op een minimum aantal knooppunten (opgegeven door NodeCount) dat is gedefinieerd door de eigenschap NodeName .
Syntax
De resources WaitForAll en WaitForAny delen dezelfde syntaxis. Vervang <ResourceType>
in het onderstaande voorbeeld door WaitForAny of WaitForAll. Net als bij het sleutelwoord DependsOn moet u de naam opmaken als [ResourceType]ResourceName
. Als de resource deel uitmaakt van een afzonderlijke configuratie, neemt u de ConfigurationName op in de opgemaakte tekenreeks [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]
. De NodeName is de computer of het knooppunt waarop de huidige resource moet wachten.
<ResourceType> [string] #ResourceName
{
ResourceName = [string]
NodeName = [string]
[ DependsOn = [string[]] ]
[ PsDscRunAsCredential = [PSCredential]]
[ RetryCount = [Uint32] ]
[ RetryIntervalSec = [Uint64] ]
[ ThrottleLimit = [Uint32]]
}
De WaitForSome-resource heeft een vergelijkbare syntaxis als in het bovenstaande voorbeeld, maar voegt de sleutel NodeCount toe. NodeCount geeft aan op hoeveel knooppunten de huidige resource moet wachten.
WaitForSome [String] #ResourceName
{
NodeCount = [UInt32]
NodeName = [string[]]
ResourceName = [string]
[DependsOn = [string[]]]
[PsDscRunAsCredential = [PSCredential]]
[RetryCount = [UInt32]]
[RetryIntervalSec = [UInt64]]
[ThrottleLimit = [UInt32]]
}
Alle WaitForXXXX delen de volgende syntaxissleutels.
Eigenschap | Beschrijving |
---|---|
RetryIntervalSec | Het aantal seconden voordat u het opnieuw probeert. Minimum is 1. |
RetryCount | Het maximum aantal keren dat u het opnieuw wilt proberen. |
ThrottleLimit | Het aantal computers dat tegelijkertijd verbinding moet maken. Standaard is New-CimSession standaard. |
DependsOn | Geeft aan dat de configuratie van een andere resource moet worden uitgevoerd voordat deze resource wordt geconfigureerd. Zie DependsOn voor meer informatie |
PsDscRunAsCredential | Zie DSC gebruiken met gebruikersreferenties |
WaitForXXXX-resources gebruiken
Elke WaitForXXXX-resource wacht tot de opgegeven resources zijn voltooid op het opgegeven knooppunt. Andere resources in dezelfde configuratie kunnen vervolgens afhankelijk zijn van de WaitForXXXX-resource met behulp van de DependsOn-sleutel .
In de volgende configuratie wacht het doelknooppunt bijvoorbeeld tot de resource xADDomain is voltooid op het MyDC-knooppunt met maximaal 30 nieuwe pogingen, met intervallen van 15 seconden, voordat het doelknooppunt kan worden toegevoegd aan het domein.
De WaitForXXX-resources proberen het standaard één keer en mislukken vervolgens. Hoewel dit niet vereist is, wilt u meestal een RetryCount en RetryIntervalSec opgeven.
Configuration JoinDomain
{
Import-DSCResource -ModuleName xComputerManagement, xActiveDirectory
Node myDC
{
WindowsFeature InstallAD
{
Ensure = 'Present'
Name = 'AD-Domain-Services'
}
xADDomain NewDomain
{
DomainName = 'Contoso.com'
DomainAdministratorCredential = (Get-Credential)
SafemodeAdministratorPassword = (Get-Credential)
DatabasePath = "C:\Windows\NTDS"
LogPath = "C:\Windows\NTDS"
SysvolPath = "C:\Windows\Sysvol"
}
}
Node myDomainJoinedServer
{
WaitForAll DC
{
ResourceName = '[xADDomain]NewDomain'
NodeName = 'MyDC'
RetryIntervalSec = 15
RetryCount = 30
}
xComputer JoinDomain
{
Name = 'myPC'
DomainName = 'Contoso.com'
Credential = (Get-Credential)
DependsOn ='[WaitForAll]DC'
}
}
}
Wanneer u de configuratie compileert, worden twee .mof-bestanden gegenereerd. Beide .mof-bestanden toepassen op de doelknooppunten met behulp van de cmdlet Start-DSCConfiguration
Notitie
WaitForXXX-resources gebruiken Windows Remote Management om de status van andere knooppunten te controleren. Zie Beveiligingsoverwegingen voor externe communicatie in PowerShell voor meer informatie over poort- en beveiligingsvereisten voor WinRM.