Что нового

Пользователи группы Администраторы

SavickiyAV

Новичок
Сообщения
23
Репутация
0
Помогите поправить скрипт суть в том что нужно перечислить всех пользователей или группы пользователей из группы Администраторы
вот что я делаю но скрипт почему то не работает =(
Код:
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\ROOT\CIMV2")

$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_GroupUser WHERE GroupComponent LIKE '%Администраторы%'", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

$count=0
For $objItem in $colItems
      msgbox('','',$objItem.PartComponent)
      $count=$count + 1
Next

MsgBox('','',$count)
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$strComputer = "."
$objWMIService = ObjGet("WinNT://" &$strComputer & "/Администраторы")
$aa=''
 For $oGroups In $objWMIService.Members
		$aa&=StringRegExpReplace($oGroups.AdsPath,'.*?'&$strComputer&'/',@CRLF)
    Next
MsgBox('','',$aa)

Код autoit заключи в тег autoit.
 
Автор
S

SavickiyAV

Новичок
Сообщения
23
Репутация
0
sngr сказал(а):
Код:
$strComputer = "."
$objWMIService = ObjGet("WinNT://" &$strComputer & "/Администраторы")
$aa=''
 For $oGroups In $objWMIService.Members
		$aa&=StringRegExpReplace($oGroups.AdsPath,'.*?'&$strComputer&'/',@CRLF)
    Next
MsgBox('','',$aa)

Код autoit заключи в тег autoit.
Да код работает! Спасибо! но есть один нюанс который я забыл оговорить сразу =( в общем ПК в домене и хотелось бы видеть пользователей группы Администраторы в виде domian\admin или PC-name\admin
и еще если не сложно подскажите где почитать про такое обращение к WMI как вы используете ($objWMIService.Members) что бы лучше понимать как работает скрипт и что еще от туда можно вытащить
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$user='1';юзверь на удалённой машине
$pasw='2';его пароль
$comp='111';сетевое имя компьютера
$cre = ObjCreate("WbemScripting.SWbemLocator")
$obj=$cre.ConnectServer ($comp, "root\cimv2", $user, $pasw)
$que=$obj.ExecQuery("Select * from Win32_GroupUser Where GroupComponent=""Win32_Group.Domain='" & _
	$comp & "',Name='Администраторы'""", "WQL", 0x30)
$res=''
For $o In $que
    $res&=$o.PartComponent&@CRLF
Next
MsgBox(0,'',$res)
Func MyErrFunc()
    MsgBox(4096, "AutoItCOM Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
            "err.description is: " & @TAB & $oMyError.description & @CRLF & _
            "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
            "err.number is: " & @TAB & hex($oMyError.number, 8) & @CRLF & _
            "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
            "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
            "err.source is: " & @TAB & $oMyError.source & @CRLF & _
            "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
            "err.helpcontext is: " & @TAB & $oMyError.helpcontext)
    Exit 1
EndFunc

На msdn находишь Win32_GroupUser и читаешь.
 
Автор
S

SavickiyAV

Новичок
Сообщения
23
Репутация
0
sngr сказал(а):
Код:
$oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$user='1';юзверь на удалённой машине
$pasw='2';его пароль
$comp='111';сетевое имя компьютера
$cre = ObjCreate("WbemScripting.SWbemLocator")
$obj=$cre.ConnectServer ($comp, "root\cimv2", $user, $pasw)
$que=$obj.ExecQuery("Select * from Win32_GroupUser Where GroupComponent=""Win32_Group.Domain='" & _
	$comp & "',Name='Администраторы'""", "WQL", 0x30)
$res=''
For $o In $que
    $res&=$o.PartComponent&@CRLF
Next
MsgBox(0,'',$res)
Func MyErrFunc()
    MsgBox(4096, "AutoItCOM Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
            "err.description is: " & @TAB & $oMyError.description & @CRLF & _
            "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
            "err.number is: " & @TAB & hex($oMyError.number, 8) & @CRLF & _
            "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
            "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
            "err.source is: " & @TAB & $oMyError.source & @CRLF & _
            "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
            "err.helpcontext is: " & @TAB & $oMyError.helpcontext)
    Exit 1
EndFunc

На msdn находишь Win32_GroupUser и читаешь.
спасибо!
 
Верх