Jonik-Mnimonik |
09-11-2009 09:50 1265427 |
Поиск пользователей с правами администраторов
Доброе время суток!
Помогите написать скрипт на vbs, который выводит список пользователей с правами администратора на компьютере Win Xp. Можно ли это сделать через WMI Code Creator?
|
Цитата:
Цитата Jonik-Mnimonik
список пользователей с правами администратора »
|
Код:
Set objGRP = GetObject("WinNT://./Administrators,Group")
For Each objMember In objGRP.Members
strList = strList & objMember.Name & vbCRLF
Next
WScript.Echo strList
Цитата:
Цитата Jonik-Mnimonik
Можно ли это сделать через WMI Code Creator? »
|
классы: Win32_Group, Win32_GroupUser
|
Petya V4sechkin |
09-11-2009 11:14 1265490 |
Jonik-Mnimonik, как-то так:
Код:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("SELECT Domain, Name FROM Win32_Group WHERE LocalAccount = True AND SID = 'S-1-5-32-544'")
For Each objItem In colItems
For Each objAdmin In objWMIService.ExecQuery _
("ASSOCIATORS OF {Win32_Group.Domain='" & objItem.Domain & "',Name='" & objItem.Name & "'} WHERE AssocClass = Win32_GroupUser")
WScript.Echo objAdmin.Name
Next
Next
|
тогда еще один немного извращенный способ, но в домене работает быстрей: :)
Код:
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
Set objNet = CreateObject("WScript.Network")
Set objREx = CreateObject("VBScript.RegExp")
objREx.Pattern = "^.*\.Domain=""([^""]+)"",Name=""([^""]+)"".*$"
objREx.IgnoreCase = True
For Each objGroup In objWMI.ExecQuery _
("SELECT * FROM Win32_Group WHERE LocalAccount=TRUE And SID='S-1-5-32-544'")
For Each objItem In objWMI.ExecQuery _
("SELECT * FROM Win32_GroupUser WHERE GroupComponent=""Win32_Group.Domain='"& objNet.ComputerName &"',Name='"& objGroup.Name &"'""")
WScript.Echo objREx.Replace(objItem.PartComponent,"$1\$2")
Next
Next
|
Jonik-Mnimonik |
09-11-2009 17:45 1265874 |
Цитата:
Цитата Petya V4sechkin
Код:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _ ("SELECT Domain, Name FROM Win32_Group WHERE LocalAccount = True AND SID = 'S-1-5-32-544'")
For Each objItem In colItems
For Each objAdmin In objWMIService.ExecQuery _ ("ASSOCIATORS OF {Win32_Group.Domain='" & objItem.Domain & "',Name='" & objItem.Name & "'} WHERE AssocClass = Win32_GroupUser") Wcript.Echo objAdmin.Name
Next
Next
»
|
К сожалению ни чего не выводит.(Пустая строка).
Цитата:
Цитата amel27
Код:
Set objGRP = GetObject("WinNT://./Administrators,Group")
For Each objMember In objGRP.Members
strList = strList & objMember.Name & vbCRLF
Next
WScript.Echo strList
»
|
Цитата:
Цитата amel27
Код:
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
Set objNet = CreateObject("WScript.Network")
Set objREx = CreateObject("VBScript.RegExp")
objREx.Pattern = "^.*\.Domain=""([^""]+)"",Name=""([^""]+)"".*$"
objREx.IgnoreCase = True
For Each objGroup In objWMI.ExecQuery _ ("SELECT * FROM Win32_Group WHERE LocalAccount=TRUE And SID='S-1-5-32-544'")
For Each objItem In objWMI.ExecQuery _ ("SELECT * FROM Win32_GroupUser WHERE GroupComponent=""Win32_Group.Domain='"& objNet.ComputerName &"',Name='"& objGroup.Name &"'""") WScript.Echo objREx.Replace(objItem.PartComponent,"$1\$2")
Next
Next
»
|
Работает. А можно ли эти скрипты запустить на удалённой машине?
|
Jonik-Mnimonik |
09-11-2009 19:47 1266001 |
Цитата:
Цитата Jonik-Mnimonik
К сожалению ни чего не выводит.(Пустая строка). »
|
Хм, а с домашнего компьютера выводит, чтож всем спасибо за ответы, скрипты рабочие, буду разбираться в дальше.
|
Цитата:
Цитата Jonik-Mnimonik
можно ли эти скрипты запустить на удалённой машине? »
|
можно:
Код:
strComputer = "MyComputer"
strGroup = "Администраторы"
Set objGRP = GetObject("WinNT://"& strComputer &"/"& strGroup &",Group")
For Each objMember In objGRP.Members
strList = strList & objMember.Name & vbCRLF
Next
WScript.Echo strList
Код:
strComputer = "MyComputer"
Set objWMI = GetObject("winmgmts:\\"& strComputer &"\root\cimv2")
Set objNet = CreateObject("WScript.Network")
Set objREx = CreateObject("VBScript.RegExp")
objREx.Pattern = "^.*\.Domain=""([^""]+)"",Name=""([^""]+)"".*$"
objREx.IgnoreCase = True
For Each objGroup In objWMI.ExecQuery _
("SELECT * FROM Win32_Group WHERE LocalAccount=TRUE And SID='S-1-5-32-544'")
For Each objItem In objWMI.ExecQuery _
("SELECT * FROM Win32_GroupUser WHERE GroupComponent=""Win32_Group.Domain='"& strComputer &"',Name='"& objGroup.Name &"'""")
WScript.Echo objREx.Replace(objItem.PartComponent,"$1\$2")
Next
Next
|
Jonik-Mnimonik |
11-11-2009 19:51 1267783 |
Огромное спасибо.
|
Время: 10:59.
© OSzone.net 2001-