共用方式為


指定跨節點相依關係

適用於:Windows PowerShell 5.0

DSC 提供特殊資源 WaitForAllWaitForAnyWaitForSome ,這些資源可用於組態,以指定其他節點上組態的相依性。 這些資源的行為如下:

  • WaitForAll:如果指定的資源在 NodeName 屬性中定義的所有目標節點上處於所需狀態,則會成功。
  • WaitForAny:如果指定的資源在 NodeName 屬性中定義的至少一個目標節點上處於所需狀態,則會成功。
  • WaitForSome:除了 NodeName 屬性之外,還指定 NodeCount 屬性。 如果資源在 NodeName 屬性所定義的節點數目下限 (由 NodeCount 指定) 上處於所需狀態,則資源會成功。

語法

WaitForAllWaitForAny 資源會共用相同的語法。 在下列範例中,請取代 <ResourceType>WaitForAnyWaitForAll。 與 DependsOn 關鍵字一樣,您需要將名稱格式化為 [ResourceType]ResourceName。 如果資源屬於個別的組態,請在格式化字串[ResourceType]ResourceName::[ConfigurationName]::[ConfigurationName]中包含 ConfigurationNameNodeName 是目前資源應該等候的電腦或節點。

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

WaitForSome 資源的語法與上述範例類似,但會新增 NodeCount 索引鍵。 NodeCount 指出目前資源應該等候多少個節點。

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

所有 WaitForXXXX 都會共用下列語法索引鍵。

房產 Description
重試間隔秒 重試之前的秒數。 最小值為 1。
重試計數 重試次數上限。
節流限制 要同時連接的機器數量。 預設值為 New-CimSession 預設值。
相依 指出在配置此資源之前,必須先執行另一個資源的組態。 如需詳細資訊,請參閱 DependsOn
PsDscRunAs認證 請參閱 將DSC與使用者認證搭配使用

使用 WaitForXXXX 資源

每個 WaitForXXXX 資源都會等待指定的資源在指定的節點上完成。 然後,相同組態中的其他資源可以使用 DependsOn 索引鍵相依於WaitForXXXX 資源。

例如,在下列組態中,目標節點正在等待 xADDomain 資源在 MyDC 節點上完成,最多重試次數為 30 次,間隔為 15 秒,然後目標節點才能加入網域。

根據預設, WaitForXXX 資源會嘗試一次,然後失敗。 雖然不是必要,但您通常會想要指定 RetryCountRetryIntervalSec

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

當您編譯組態時,會產生兩個「.mof」檔案。 使用 Start-DSCConfiguration Cmdlet 將這兩個 “.mof” 檔案套用至目標節點

備註

WaitForXXX 資源會使用 Windows 遠端管理來檢查其他節點的狀態。 如需 WinRM 埠和安全性需求的詳細資訊,請參閱 PowerShell 遠端安全性考慮

另請參閱