-
Notifications
You must be signed in to change notification settings - Fork 0
AzDoGroupMember
The AzDoGroupMember DSC resource manages membership within Azure DevOps groups (both organization and project-level). It allows you to add or remove users and other identities from groups.
AzDoGroupMember [string] #ResourceName
{
GroupName = [String] $GroupName
MemberName = [String] $MemberName
[ ProjectName = [String] $ProjectName ]
[ Ensure = [String] {'Present', 'Absent'} ]
[ DependsOn = [String[]] ]
[ PsDscRunAsCredential = [PSCredential] ]
}-
GroupName [String] - The name of the group to manage membership for.
-
MemberName [String] - The name or email of the member to add or remove.
-
ProjectName [String] - The project name for project-level groups. Omit for organization-level groups.
-
Ensure [String] - Desired state:
-
'Present'- (default) Member should be in the group -
'Absent'- Member should be removed from the group
-
-
DependsOn [String[]] - Dependencies on other resources.
-
PsDscRunAsCredential [PSCredential] - Credentials to run this resource under.
- GroupName - The group name
- MemberName - The member name/email
- ProjectName - The project (if project-level)
- Ensure - Current state
Configuration AddOrgMember {
Import-DscResource -ModuleName 'AzureDevOpsDscNative'
Node localhost {
AzDoOrganizationGroup 'DevGroup' {
Ensure = 'Present'
GroupName = 'Developers'
}
AzDoGroupMember 'AddDev1' {
Ensure = 'Present'
GroupName = 'Developers'
MemberName = 'developer1@company.com'
DependsOn = '[AzDoOrganizationGroup]DevGroup'
}
}
}
AddOrgMember
Start-DscConfiguration -Path ./AddOrgMember -Wait -VerboseConfiguration AddMultipleMembers {
Import-DscResource -ModuleName 'AzureDevOpsDscNative'
Node localhost {
AzDoOrganizationGroup 'AdminGroup' {
Ensure = 'Present'
GroupName = 'Administrators'
}
AzDoGroupMember 'AddAdmin1' {
Ensure = 'Present'
GroupName = 'Administrators'
MemberName = 'admin1@company.com'
DependsOn = '[AzDoOrganizationGroup]AdminGroup'
}
AzDoGroupMember 'AddAdmin2' {
Ensure = 'Present'
GroupName = 'Administrators'
MemberName = 'admin2@company.com'
DependsOn = '[AzDoOrganizationGroup]AdminGroup'
}
}
}
AddMultipleMembers
Start-DscConfiguration -Path ./AddMultipleMembers -Wait -VerboseConfiguration AddProjectMember {
Import-DscResource -ModuleName 'AzureDevOpsDscNative'
Node localhost {
AzDoProject 'MyProject' {
Ensure = 'Present'
ProjectName = 'MyProject'
SourceControlType = 'Git'
ProcessTemplate = 'Agile'
}
AzDoProjectGroup 'ProjectDevs' {
Ensure = 'Present'
ProjectName = 'MyProject'
GroupName = 'Project Developers'
DependsOn = '[AzDoProject]MyProject'
}
AzDoGroupMember 'AddProjectMember' {
Ensure = 'Present'
GroupName = 'Project Developers'
ProjectName = 'MyProject'
MemberName = 'developer@company.com'
DependsOn = '[AzDoProjectGroup]ProjectDevs'
}
}
}
AddProjectMember
Start-DscConfiguration -Path ./AddProjectMember -Wait -VerboseConfiguration RemoveMember {
Import-DscResource -ModuleName 'AzureDevOpsDscNative'
Node localhost {
AzDoGroupMember 'RemoveMember' {
Ensure = 'Absent'
GroupName = 'Developers'
MemberName = 'old.employee@company.com'
}
}
}
RemoveMember
Start-DscConfiguration -Path ./RemoveMember -Wait -VerboseMembers can be identified by:
- Email address (recommended)
- Username
- Display name (less reliable)
- Omit
ProjectNamefor organization-level groups - Include
ProjectNamefor project-level groups - Use appropriate group scope for your scenario
Always ensure the group exists before adding members:
DependsOn = '[AzDoOrganizationGroup]GroupName'Cause: Member doesn't exist in the organization or project
Solution:
- Verify the member's email/username
- Ensure the member is a valid Azure DevOps user
- Check if the member is already added
Cause: Permissions issue or group not found
Solution:
- Verify group exists first
- Check that authentication has appropriate permissions
- Ensure proper group scope (org vs project)
- AzDoOrganizationGroup - Create organization groups
- AzDoProjectGroup - Create project groups
- AzDoTeamMember - Manage team membership
- AzDoGroupPermission - Manage group permissions