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 de målnoder 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 Node, där den aktuella resursen ska vänta.

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

WaitForSome-resursen har en liknande syntax som exemplet ovan, men lägger till NodeCount-nyckeln. NodeCount anger hur många noder som 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.

Egenskap Beskrivning
RetryIntervalSec Antal sekunder innan du försöker igen. Minimum är 1.
RetryCount Det maximala antalet gånger som återförsök ska utföras.
ThrottleLimit Antal datorer som ska anslutas samtidigt. Standardvärdet är New-CimSession standard.
DependsOn Anger att konfigurationen av en annan resurs måste köras innan den här resursen har konfigurerats. 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 avWaitForXXXX-resursen med hjälp av DependsOn-nyckeln .

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

Som standard provar WaitForXXX-resurserna en gång och misslyckas sedan. Även om det inte krävs vill du vanligtvis ange 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

Anteckning

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