Hallo,
ich probier erst seit relativ kurzer Zeit mit den Möglichkeiten von AutoIT rum und bin bis jetzt schon begeistert und hab auch schon mehrere kleine Programme erfolgreich im Einsatz.
Allerdings bin ich nun auf ein Problem gestoßen bei dem ich nicht mehr weiterkomme oder mir einfach das Verständnis fehlt, ich sollte vielleicht dazu anmerken das ich eher ein Netzwerknoob bin.
So genug Vorspiel, jetzt zum eigentlichen Problem:
Um gleich mal alles vorweg zu nehmen das Tool ist für Administratoren gedacht, und wird nicht für Hackerzwecker oder sonst irgendnen Krampf verwendet werden.
Ich habe ein kleines Tool geschrieben welches mir die Benutzer SID`s in eine Combo Box ausliest,
man wählt einen Benutzer aus drückt einen Button, in meinem Falle `Lock` oder `Unlock` und dann sollen per RegWrite verschiedene Einstellungen in der Registry geändert werden.
Lokal kann ich das auch wunderschön machen und dat Dingen führt alles so aus wie ich das möchte.
Als ich allerding einen Test in einer Domänenumgebung vorgenommen habe, funzt das nur wenn man als der Benutzer den man sperren möchte angemeldet ist, wähle ich einen anderen Benutzer passiert nix.
BSP: Anmeldung als Gast -> Man startet die Unlock_lock.ex -> wählt Admin - LOCK -> Abmelden Gast -> Anmelden Admin -> nix ist passiert -> Abmelden Admin -> Anmeldnen Gast -> start Unlock_lock.exe -> wählt Gast - LOCK -> Ab- und Anmelden Gast -> Änderungen sind vorgenommen worden.
Hier is erst mal der Code ich kann leider nicht alles hier reinstellen aber das elementare ist darin enthalten,
sorry für die saumäßige Formatierung, hab aber noch grad die Kommentare entfernen müssen von daher schauts nicht so toll aus.
Das System ist ein Windows xp sp2 System.
Spoiler anzeigen
#include <GUIConstants.au3>
#include <Array.au3>
#include <string.au3>
#Include <process.au3>
dim $arSid[15]
dim $sid
dim $splitter
$i = 0
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_UserAccount", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
GUICreate("Lock & Unlock", 200, 90) ; will create a dialog box that when displayed is centered
$buttonlock = GUICtrlCreateButton("Lock", 16, 50, 81, 25, 0)
$buttonunlock = GUICtrlCreateButton("UnLock", 100, 50, 81, 25, 0)
$combo = GUICtrlCreateCombo ("Bitte User wählen", 22,10,150) ; create first item
If IsObj($colItems) then
For $objItem In $colItems
$sid = $objItem.SID
GUICtrlsetdata(-1,$i & " = " & $objItem.Name) ; add other item snd set a new default
$arSid[$i] = $sid
$i = $i + 1
GUISetState ()
Next
Else
Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_UserAccount" )
Endif
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $buttonlock
$splitter = GUICtrlRead($combo)
;MsgBox(16,"LockIT",$splitter)
$arAus = StringSplit($splitter,' = ')
;MsgBox(16,"LockIT",$arAus[0] & $arAus[1] & $arAus[2] & $arAus[3])
$i = $arAus[1]
;MsgBox(16,"LockIT",$i)
RegWrite("HKEY_USERS\"&$arSid[$i]&"\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoRun", "Reg_DWord", "00000001")
Case $buttonunlock
$splitter = GUICtrlRead($combo)
$arAus = StringSplit($splitter,' = ')
$i = $arAus[1]
RegWrite("HKEY_USERS\"&$arSid[$i]&"\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoRun", "Reg_DWord", "00000000")
EndSwitch
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
, für Hilfe wäre ich sehr dankbar, da ich im Moment irgendwie auf`n Schlauch steh.