Hey,
kurze frage möchte gerne auf vom remote rechner die administrator gruppe auslesen also die mitglieder der gruppe jemand ein Tipp wie ich das elegant lösen könnte?
Danke
SubZero
Hey,
kurze frage möchte gerne auf vom remote rechner die administrator gruppe auslesen also die mitglieder der gruppe jemand ein Tipp wie ich das elegant lösen könnte?
Danke
SubZero
Hier ein Auszug aus SIC2 :
;Coded by UEZ 2009
#AutoIt3Wrapper_Change2CUI=y
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#include <array.au3>
Global $server = "localhost"
If $CmdLine[0] > 0 Then $server = $CmdLine[1]
$objWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & $server & "\root\cimv2")
[/autoit] [autoit][/autoit] [autoit]Membership_Administrators_Local($server)
[/autoit] [autoit][/autoit] [autoit]Func Membership_Administrators_Local($srv)
If StringUpper($srv) = StringUpper("Localhost") Then $srv = @ComputerName
Local $function_name = "Members"
Local $LM_members, $x, $LM_LocalGroup_Name, $type, $colItems2, $LM_local_user, $y, $line, $TimeStamp
Local $filename_ms = $function_name & "_" & $srv
Local $filename_error_current = $function_name & "_" & $srv & "_error.log"
$LM_LocalGroup_Name = "Administrators"
$colItems = $objWMIService.ExecQuery("Select SID from Win32_Group WHERE Domain='" & $srv & "'", "WQL", 0x30)
If IsObj($colItems) Then
For $objItem In $colItems
If StringUpper($objItem.SID) = StringUpper("S-1-5-32-544") Then $LM_LocalGroup_Name = $objItem.Name
Next
EndIf
$type = ""
$LM_local_user = ""
$colItems = $objWMIService.ExecQuery("Select * from Win32_GroupUser Where GroupComponent=""Win32_Group.Domain='" & $srv & "',Name='" & $LM_LocalGroup_Name & "'""", "WQL", 0x30)
If IsObj($colItems) Then
For $objItem In $colItems
If $objItem.PartComponent <> "" Then
$x = StringSplit($objItem.PartComponent, """")
$type = StringMid($x[1], StringInStr($x[1], ":Win32_") + 7, (StringInStr($x[1], ".") - (StringInStr($x[1], ":Win32_") + 7)))
$LM_members &= $srv & ";" & $LM_LocalGroup_Name & ";" & $type & ";" & $x[2] & "\" & $x[4] & ";" & @CRLF
EndIf
Next
EndIf
ConsoleWrite($LM_members)
EndFunc ;==>Membership_Administrators_Local
Vielleicht musst du noch die Sprache anpassen (Administrators -> Administratoren)!
Gruß,
UEZ
Ich hätte das so gelöst:
#Include <Array.au3>
$Members = _LocalGroupMembers("Administratoren")
_ArrayDisplay($Members)
Func _LocalGroupMembers($sGroup)
;funkey 03.12.2009
Local $line, $aMembers
Local $cmd = "net localgroup "& $sGroup
Local $Pid = Run(@ComSpec & " /c " & $cmd, "", @SW_HIDE, 2)
While 1
$line &= StdoutRead($Pid)
If @error Then ExitLoop
Wend
$aMembers = StringSplit(StringTrimLeft($line, StringInStr($line, "-----", 0, -1) + 6), @CRLF, 3)
ReDim $aMembers[UBound($aMembers) - 3]
Return $aMembers
EndFunc