共用方式為


DSC 群組資源

適用於:Windows PowerShell 4.0、Windows PowerShell 5.x

Windows PowerShell Desired State Configuration (DSC 中的群組資源) 提供機制來管理目標節點上的本機群組。

注意

此 DSC 資源的本檔涵蓋 7.2 版之前 PowerShell 隨附的版本。 PSDscResources模組包含 Microsoft 正式支援的全新和更新 DSC 資源。 PSDscResources 模組可從 PowerShell 資源庫中取得。

如需詳細資訊和更新的檔,請參閱 PSDscResources 參考檔

語法

Group [string] #ResourceName
{
    GroupName = [string]
    [ Credential = [PSCredential] ]
    [ Description = [string[]] ]
    [ Members = [string[]] ]
    [ MembersToExclude = [string[]] ]
    [ MembersToInclude = [string[]] ]
    [ DependsOn = [string[]] ]
    [ Ensure = [string] { Absent | Present }  ]
    [ PsDscRunAsCredential = [PSCredential] ]
}

屬性

屬性 描述
GroupName 您要確保其特定狀態的群組名稱。
認證 存取遠端資源時所需的認證。 此帳戶必須具有適當的 Active Directory 權限,藉此將所有非本機帳戶新增至群組;否則,在目標節點上執行設定時會發生錯誤。
描述 群組的描述。
成員 您可以使用這個屬性,以指定的成員來取代目前的群組成員資格。 這個屬性值為字串陣列,格式為 Domain\UserName。 如果您在設定中設定這個屬性,請勿使用 MembersToExcludeMembersToInclude 屬性。 這麼做會產生錯誤。
MembersToExclude 使用這個屬性從群組的現有成員資格移除成員。 這個屬性值為字串陣列,格式為 Domain\UserName。 如果您在設定中設定這個屬性,請勿使用 Members 屬性。 這麼做會產生錯誤。
MembersToInclude 使用這個屬性將成員新增至群組的現有成員資格。 這個屬性值為字串陣列,格式為 Domain\UserName。 如果您在設定中設定這個屬性,請勿使用 Members 屬性。 這樣會產生錯誤。

通用屬性

屬性 描述
DependsOn 表示必須先執行另一個資源的設定,再設定這個資源。 例如,如果第一個想要執行的資源設定指令碼區塊識別碼是 ResourceName,而其類型是 ResourceType,則使用這個屬性的語法就是 DependsOn = "[ResourceType]ResourceName"
Ensure 指出群組是否存在。 將此屬性設定為 Absent ,以確保群組不存在。 設定此群組為 Present 以確保此群組存在。 預設值為 Present
PsDscRunAsCredential 設定用於執行整個資源的認證。

注意

已在 WMF 5.0 中新增 PsDscRunAsCredential 通用屬性,以允許在其他認證的內容中執行任何 DSC 資源。 如需詳細資訊,請參閱搭配 DSC 資源使用認證

範例 1:確定群組不存在

下列範例示範如何確定名為 "TestGroup" 的群組不存在。

Group GroupExample
{
    # This removes TestGroup, if present
    # To create a new group, set Ensure to "Present"
    Ensure = "Absent"
    GroupName = "TestGroup"
}

範例 2:將網域使用者新增至本機群組

下列範例顯示如何將 Active Directory 使用者新增至本機系統管理員群組,成為已使用本機系統管理員帳戶 PSCredential 之多電腦實驗室組建的一部分。 因為這也會用於網域系統管理員帳戶 (在網域升級之後),所以我們需要將此現有的 PSCredential 轉換為適用於網域的認證。 之後,我們便可將網域使用者新增到成員伺服器上的本機系統管理員群組。

@{
    AllNodes = @(
        @{
            NodeName = '*';
            DomainName = 'SubTest.contoso.com';
         }
        @{
            NodeName = 'Box2';
            AdminAccount = 'Admin-Dave_Alexanderson'
        }
    )
}

$domain = $node.DomainName.split('.')[0]
$DCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ("$domain\$($credential.Username)", $Credential.Password)

Group AddADUserToLocalAdminGroup {
    GroupName='Administrators'
    Ensure= 'Present'
    MembersToInclude= "$domain\$($Node.AdminAccount)"
    Credential = $dCredential
    PsDscRunAsCredential = $DCredential
}

範例 3

下列範例示範如何確定伺服器 TigerTeamSource.Contoso.Com 上的本機群組 TigerTeamAdmins 不包含特定的網域帳戶 Contoso\JerryG。

Configuration SecureTigerTeamSource {
    Import-DscResource -ModuleName 'PSDesiredStateConfiguration'

    Node TigerTeamSource.Contoso.Com {
        Group TigerTeamAdmins {
            GroupName        = 'TigerTeamAdmins'
            Ensure           = 'Present'
            MembersToExclude = "Contoso\JerryG"
        }
    }
}