以前、ローカルグループアカウントを取得する寳保について記載しました。
今回は、ローカルグループアカウントに登録されているメンバー一覧を取得する方法について記載しています。
次のソースコードでファイルを作成して実行します。
GoupMember.ps1
$setHostname = HOSTNAME
Get-WMIObject Win32_Group -filter "domain='$setHostname'" |
%{
$setComputer = [ADSI]("WinNT://" + $setHostname + ",computer")
$setGroup = $setComputer.psbase.children.find($_.name)
$members= $setGroup.psbase.invoke("Members") | %{
$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)
}
Write-Host "[" $_.name "]" -ForegroundColor Yellow
$members
}
カレントパスで実行する場合は以下のコマンドを実行します。
PS >.\GroupMember.ps1
実行結果
[ Access Control Assistance Operators ]
[ Administrators ]
Administrator
S-1-12-1-2487866043-1271718544-4114024090-**********
S-1-12-1-2115857868-1205773265-2582505903-**********
[ Backup Operators ]
[ Cryptographic Operators ]
[ Distributed COM Users ]
[ Event Log Readers ]
[ Guests ]
Guest
[ Hyper-V Administrators ]
[ IIS_IUSRS ]
IUSR
[ Network Configuration Operators ]
[ Performance Log Users ]
[ Performance Monitor Users ]
[ Power Users ]
[ Remote Desktop Users ]
[ Remote Management Users ]
[ Replicator ]
[ System Managed Accounts Group ]
DefaultAccount
[ Users ]
INTERACTIVE
メンバーが登録されている場合、対象のグループの次に一覧として表示されます。