Skip to content

$cs.UsrMgr_EnumMembersOfLocalGroup

Returns the members of a local group. The group parameter accepts either a group name or a SID (a SID is resolved to a name internally before enumeration). Each member is returned as a string in DOMAIN\name format, for example PC01\Administrator for a local account or CONTOSO\Domain Admins for a domain group.

$cs.UsrMgr_EnumMembersOfLocalGroup(string group)

Name or SID of the local group to enumerate.

A Collection<PSObject> with one DOMAIN\name string per member of the group. The collection is empty if the group has no members.

Audit and log the current members of Administrators before making any changes, so the pre-install state is captured for troubleshooting:

Terminal window
$groupMembers = $cs.UsrMgr_EnumMembersOfLocalGroup('Administrators')
foreach ($item in $groupMembers) {
$cs.Job_WriteLog("Member found: $($item)")
}

Check whether a specific user is already a member of a group before adding them, to avoid redundant calls:

Terminal window
$members = $cs.UsrMgr_EnumMembersOfLocalGroup('S-1-5-32-544')
$alreadyMember = $members | Where-Object { $_.ToString() -like '*capaadmin*' }
if (-not $alreadyMember) {
$cs.Job_WriteLog("capaadmin is not yet a member of Administrators, adding it")
$cs.UsrMgr_AddUserToLocalGroup('capaadmin', 'S-1-5-32-544')
} else {
$cs.Job_WriteLog("capaadmin is already a member of Administrators, skipping")
}

$cs.UsrMgr_AddUserToLocalGroup $cs.UsrMgr_RemoveUserFromLocalGroup $cs.UsrMgr_GetNameBySid