3
我需要编写一个脚本来获取Windows服务器的Administrators组中的成员列表以供审核。如果不是本地的,我还需要显示用户/组的域名。如何使用VBScript和WMI列出本地管理员组的所有成员
我需要编写一个脚本来获取Windows服务器的Administrators组中的成员列表以供审核。如果不是本地的,我还需要显示用户/组的域名。如何使用VBScript和WMI列出本地管理员组的所有成员
下面的脚本将工作,即使在域控制器上:
Sub GetAdministrators(strComputerName)
Dim objWMIService, strQuery, colItems, Path, strMembers
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
strQuery = "select * from Win32_GroupUser where GroupComponent = " & chr(34) & "Win32_Group.Domain='" & strComputerName & "',Name='Administrators'" & Chr(34)
Set ColItems = objWMIService.ExecQuery(strQuery)
strMembers = ""
For Each Path In ColItems
Dim strMemberName, NamesArray, strDomainName, DomainNameArray
NamesArray = Split(Path.PartComponent,",")
strMemberName = Replace(Replace(NamesArray(1),Chr(34),""),"Name=","")
DomainNameArray = Split(NamesArray(0),"=")
strDomainName = Replace(DomainNameArray(1),Chr(34),"")
If strDomainName <> strComputerName Then
strMemberName = strDomainName & "\" & strMemberName
End If
WScript.Echo strMemberName
Next
End Sub
Function GetComputerName()
Set objWMISvc = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMISvc.ExecQuery("Select * from Win32_ComputerSystem", , 48)
For Each objItem in colItems
strComputerName = objItem.Name
GetComputerName = strComputerName
Next
End Function
GetAdministrators GetComputerName
要执行它,只需运行该命令提示符窗口:
cscript //nologo script.vbs.
很抱歉的悬而未决的问题,我以为我可以关闭它,所以它只是一个代码共享,但我不能再过8个小时。 –
你可以做的是问一个问题:“我如何列出所有成员...”,然后将其作为答案。 – 2011-10-15 13:09:25
我将问题的答案部分编辑为答案。 SO自我回答时请使用此方法。您然后不需要关闭它。 –