我有一个用于验证用户凭据的vbscript,我的代码的一部分是
Set objLocalGroup = GetObject("WinNT://./Administrators, group")
现在这个代码在Windows(德语和法语版)中失败,经过调试,我认为问题是,在德语版本中,对应英语“Administrators”的组被命名为“Administratoren”..
有没有通用的方法来获取对象?
感谢。
答案 0 :(得分:1)
管理员组有一个well-known SID,所以这样的事情应该有效:
Set wmi = GetObject("winmgmts://./root/cimv2")
Set admins = wmi.Get("Win32_SID.SID='S-1-5-32-544'")
Set objLocalGroup = GetObject("WinNT://./" & admins.AccountName & ",group")
Another way将从Win32_Group
类中获取名称:
Set wmi = GetObject("winmgmts://./root/cimv2")
qry = "SELECT * FROM Win32_Group WHERE SID = 'S-1-5-32-544'"
For Each group In wmi.ExecQuery(qry)
Set objLocalGroup = GetObject("WinNT://./" & group.Name & ",group")
Next