Получение членов группы через ADSI, согласно комментарию @rboy. Наверное, проще всего иметь здесь свою собственную функцию, если вы не можете использовать Get-LocalGroupMember
.
function Get-LocalMembers {
Param(
[parameter(Mandatory=$false)][string]$GroupName
)
$ADSI = [ADSI]"WinNT://$env:COMPUTERNAME"
if ($PSBoundParameters.ContainsKey('GroupName')) {
$Groups = $ADSI.Children.Find($GroupName,'Group')
}
else {
$Groups = $ADSI.Children | Where-Object { $_.SchemaClassName -eq 'Group' }
}
Foreach ($Group in $Groups) {
[PSCustomObject] @{
Group = $($Group | Select-Object -ExpandProperty Name)
Members = $(
$Group.Invoke('members') | ForEach-Object {
$_.GetType().InvokeMember("Name",'GetProperty',$null,$_,$null)
}
)
}
}
}
Использование:
Get-LocalMembers # Get members of all groups
Get-LocalMembers -GroupName Administrators # Get members of specified group
EDIT
Получение свойства Name и FullName. Я не уверен, что еще можно сделать с помощью ADSI в PowerShell. Я никогда не исследовал это дальше, чем объекты пользователей и списки групп / участников. заполните свойство Fullname.