Delen via


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.

Zie ook