Ange beroenden mellan noder

Gäller för: Windows PowerShell 5.0

DSC tillhandahåller särskilda resurser, WaitForAll, WaitForAny och WaitForSome som kan användas i konfigurationer för att ange beroenden för konfigurationer på andra noder. Beteendet för dessa resurser är följande:

  • WaitForAll: Lyckas om den angivna resursen är i önskat tillstånd på alla målnoder som definierats i egenskapen NodeName .
  • WaitForAny: Lyckas om den angivna resursen är i önskat tillstånd på minst en av målnoderna som definierats i egenskapen NodeName .
  • WaitForSome: Anger en NodeCount-egenskap utöver en NodeName-egenskap . Resursen lyckas om resursen är i önskat tillstånd på ett minsta antal noder (anges av NodeCount) som definieras av egenskapen NodeName .

Syntax

Resurserna WaitForAll och WaitForAny delar samma syntax. Ersätt <ResourceType> i exemplet nedan med antingen WaitForAny eller WaitForAll. Precis som nyckelordet DependsOn måste du formatera namnet som [ResourceType]ResourceName. Om resursen tillhör en separat konfiguration inkluderar du ConfigurationName i den formaterade strängen [ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]. NodeName är den dator, eller nod, som den aktuella resursen ska vänta på.

<ResourceType> [string] #ResourceName
{
    ResourceName = [string]
    NodeName = [string]
    [ DependsOn = [string[]] ]
    [ PsDscRunAsCredential = [PSCredential]]
    [ RetryCount = [Uint32] ]
    [ RetryIntervalSec = [Uint64] ]
    [ ThrottleLimit = [Uint32]]
}

Resursen WaitForSome har en liknande syntax som i exemplet ovan, men lägger till NodeCount-nyckeln. NodeCount anger hur många noder den aktuella resursen ska vänta på.

WaitForSome [String] #ResourceName
{
    NodeCount = [UInt32]
    NodeName = [string[]]
    ResourceName = [string]
    [DependsOn = [string[]]]
    [PsDscRunAsCredential = [PSCredential]]
    [RetryCount = [UInt32]]
    [RetryIntervalSec = [UInt64]]
    [ThrottleLimit = [UInt32]]
}

Alla WaitForXXXX delar följande syntaxnycklar.

Fastighet Description
RetryIntervalSec Antalet sekunder innan du försöker igen. Minimum är 1.
RetryCount Det maximala antalet gånger som du kan försöka igen.
ThrottleLimit (på engelska) Antal maskiner som ska anslutas samtidigt. Standard är New-CimSession standard.
Beror på Anger att konfigurationen av en annan resurs måste köras innan den här resursen konfigureras. Mer information finns i DependsOn
PsDscRunAsCredential Se Använda DSC med användarautentiseringsuppgifter

Använda WaitForXXXX-resurser

Varje WaitForXXXX resurs väntar på att de angivna resurserna ska slutföras på den angivna noden. Andra resurser i samma konfiguration kan sedan vara beroende av resursen WaitForXXXX med hjälp av DependsOn-nyckeln .

I följande konfiguration väntar målnoden till exempel på att xADDomain-resursen ska slutföras på MyDC-noden med maximalt antal 30 återförsök, med 15 sekunders intervall, innan målnoden kan ansluta till domänen.

Som standard försöker WaitForXXX-resurserna en gång och misslyckas sedan. Även om det inte krävs vill du vanligtvis ange en RetryCount och RetryIntervalSec.

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'
        }
    }
}

När du kompilerar konfigurationen genereras två ".mof"-filer. Tillämpa båda ".mof"-filerna på målnoderna med hjälp av cmdleten Start-DSCConfiguration

Anmärkning

WaitForXXX-resurser använder Windows Remote Management för att kontrollera tillståndet för andra noder. Mer information om port- och säkerhetskrav för WinRM finns i Säkerhetsöverväganden för PowerShell-fjärrkommunikation.

Se även