以前、PoweShellを使用してローカルグループアカウントのメンバーを取得しました。
今回は、VBSとBATを使用してローカルグループアカウントからメンバー一覧を取得する方法について記載しています。
以下の2つのファイルを作成します。
GroupMember.bat
@echo off
cscript GroupMember.vbs > GroupMemberList.txt
GroupMember.vbs
Set groups = GetObject("WinNT://.")
groups.Filter = Array("Group")
list = ""
For Each group In groups
list = list & ":" & group.Name & vbCrLf
target = GetMemberName( group.Name )
if target = "" then
list = list & "メンバー無し" & vbCrLf
else
list = list & target
end if
list = list & vbCrLf
Next
Wscript.Echo list
Function GetMemberName( strGroup )
Set users = GetObject("WinNT://.")
ret = ""
users.Filter = Array("User")
For Each user In users
For Each grp In user.Groups
if strGroup = grp.Name then
ret = ret & user.Name & vbCrLf
end if
Next
Next
GetMemberName = ret
End function
作成したBATを実行します。
グループアカウントのメンバー一覧が「GroupMemberList.txt」に出力されます。
PoweshellからBATを実行するには以下のコードを実行します。
cmd /c GroupMember.bat | Out-Null
Poweshellだけでグループメンバーを取得した方が簡単だと思いますが、VBSを利用したい場合の参考としてください。