Danke für die Antworten, eine Möglichkeit RunAs zu nutzen damit gar nichts eingegeben werden muss und das Programm direkt als Admin läuft gibt es nicht?
Beiträge von looxis
-
-
Niemand eine Idee?
-
Das ist die Variante die funktioniert, aber durch das RequireAdmin muss ich Logindaten eingeben, nehme ich es raus läuft das Script nicht mehr
Code
Alles anzeigenDev() Func Dev() ; Change the username and password to the appropriate values for your system. Local $sUserName = "MeinLokalerACC" Local $sPassword = "MeinLokalesPW!" Local $iPID = RunAs($sUserName, @ComputerName, $sPassword, 0,"cmd.exe /k hdwwiz.cpl", @SystemDir, @SW_SHOW) WinWait("[CLASS:Notepad]", "", 10) ProcessClose($iPID) EndFunc #RequireAdmin WinWait("Geräte-Manager","") WinActivate("Geräte-Manager","") ControlSend("Geräte-Manager","", "[CLASS:SysTreeView32; INSTANCE:1]", "{TAB}" & "{ALT}" & "{RIGHT}" & "{ENTER}" & "{DOWN}" & "{DOWN}" & "{ENTER}") WinWait("Hardware","Willkommen") WinActivate("Hardware","Willkommen") ControlClick("Hardware","Willkommen",12324) WinWait("Hardware","Mit diesem") WinActivate("Hardware","Mit diesem") ControlClick("Hardware","Mit diesem",317) WinWait("Hardware","Mit diesem") WinActivate("Hardware","Mit diesem") ControlClick("Hardware","Mit diesem",12324) WinWait("Hardware","Alle Geräte anzeigen") WinActivate("Hardware","Alle Geräte anzeigen") ControlSend("Hardware","Alle Geräte anzeigen","", "{DOWN 8}" & "{ENTER}") WinWait("Hardware","Wählen Sie") WinActivate("Hardware","Wählen Sie") ControlSend("Hardware","Wählen Sie",1580, "{DOWN 2}") WinWait("Hardware","Wählen Sie") WinActivate("Hardware","Wählen Sie") ControlClick("Hardware","Wählen Sie",12324) WinWait("Hardware","Die neue Hardware") WinActivate("Hardware","Die neue Hardware") ControlClick("Hardware","Weiter",12324) WinWait("Hardware","Fertigstellen") WinActivate("Hardware","Fertigstellen") ControlClick("Hardware","Fertigstellen",12325)
-
Hi Leute,
das Script lief schon mal super allerdings musste ich mich immer anmelden, das soll das Script direkt intern machen.
Allerdings läuft seitdem ich von Local Anmeldung auf Domain Anmeldung umgestellt habe das Script nicht los. (Bis zum Schritt Geräte Manager klappt es, dieser geht auch mit den richtigen Rechten auf)
Danach sollte das Script mit WinWait eigentlich erkennen, Oh das ist ja ein Geräte-Manager fang ich mal an, macht es aber nicht.
Könnt ihr mal bitte gucken warum es so Stur ist und nicht loslegen will?Vielen Dank.
Code
Alles anzeigen$Username = "MeinUserName" $Domain = "MeineDomain" $Password = "MeinPW" RunAs($UserName, $Domain, $Password, 1,"cmd.exe /k hdwwiz.cpl", @SystemDir, @SW_SHOW) WinWait("Geräte-Manager","Geräte-Manager") WinActivate("Geräte-Manager","Geräte-Manager") ControlSend("Geräte-Manager","Geräte-Manager", "[CLASS:SysTreeView32; INSTANCE:1]", "{TAB}" & "{ALT}" & "{RIGHT}" & "{ENTER}" & "{DOWN}" & "{DOWN}" & "{ENTER}") WinWait("Hardware","Willkommen") WinActivate("Hardware","Willkommen") ControlClick("Hardware","Willkommen",12324) WinWait("Hardware","Mit diesem") WinActivate("Hardware","Mit diesem") ControlClick("Hardware","Mit diesem",317) WinWait("Hardware","Mit diesem") WinActivate("Hardware","Mit diesem") ControlClick("Hardware","Mit diesem",12324) WinWait("Hardware","Alle Geräte anzeigen") WinActivate("Hardware","Alle Geräte anzeigen") ControlSend("Hardware","Alle Geräte anzeigen","", "{DOWN 8}" & "{ENTER}") WinWait("Hardware","Wählen Sie") WinActivate("Hardware","Wählen Sie") ControlSend("Hardware","Wählen Sie",1580, "{DOWN 2}") WinWait("Hardware","Wählen Sie") WinActivate("Hardware","Wählen Sie") ControlClick("Hardware","Wählen Sie",12324) WinWait("Hardware","Die neue Hardware") WinActivate("Hardware","Die neue Hardware") ControlClick("Hardware","Weiter",12324) WinWait("Hardware","Fertigstellen") WinActivate("Hardware","Fertigstellen") ControlClick("Hardware","Fertigstellen",12325)
-
Guten Morgen
ich versuche derzeit eine automatische Installation für das Programm OCS Inventory zu erstellen mit diversen Hürden:
1. der "Run" Befehl möchte das Programm / Setup bei mir überhaupt nicht starten mit ShellExecute lässt es sich aufrufen
2. wenn ich dann die einzelnen Schritte eingebe z.B. das der Next Button gedrückt werden soll und ich danach das Script ausführe müsste er doch auch an der Stelle nach dem Next Button stehen oder?Die Buttons, Title, Text habe ich mir mit AutoIt Window Info rausgesucht
Hier mal das Script: (ich habe das erstmal nicht weiter gemacht, da wie gesagt nichts davon zu merken ist das er 2 Buttons mit der ID 1 ausführt.)
CodeShellExecute("OCS-NG-Windows-Agent-Setup.exe") WinWait("OCS Inventory NG Agent 2.0.5.0 Setup","Welcome to the OCS Inventory NG Agent 2.0.5.0 Setup Wizard") WinActivate("OCS Inventory NG Agent 2.0.5.0 Setup","Welcome to the OCS Inventory NG Agent 2.0.5.0 Setup Wizard") ControlClick("OCS Inventory NG Agent 2.0.5.0 Setup","Welcome to the OCS Inventory NG Agent 2.0.5.0 Setup Wizard", 1) WinWait("OCS Inventory NG Agent 2.0.5.0 Setup","Press Page Down to see the rest of the agreement.") WinActivate("OCS Inventory NG Agent 2.0.5.0 Setup","Press Page Down to see the rest of the agreement.") ControlClick("OCS Inventory NG Agent 2.0.5.0 Setup","Press Page Down to see the rest of the agreement.", 1)
oder ist es normal das man nichts sieht bis wirklich das komplette Setup im Script ist?
-
Hi Leute,
ich würde gerne per PSexec eine CMD auf einem Domain PC ausführen, wenn ich den PC Name / IP fest ins Script eintrage funktioniert das auch, allerdings möchte ich das er mich vorher fragt
auf welchem PC das ganze ausgeführt werden soll. Das Fenster mit der Frage erscheint auch, allerdings passiert dann nichts ich denke es liegt an dem cmd.exe hinter dem \\
leider waren aber meine Lösungsmöglichkeiten nicht erfolgreich.Spoiler anzeigen
Geht nicht
Case $Button4
$sTarget2 = InputBox ( "Auf welchem PC / Server soll Remote CMD ausgeführt werden", "Auf welchem PC / Server soll Remote CMD ausgeführt werden", "", "")
RunAs($Username ,$Domain ,$Password , 1, "cmd.exe /c C:\Admintools\psexec.exe \\ cmd.exe" & $sTarget2, @SystemDir, @SW_SHOW)Spoiler anzeigen
Funktioniert, allerdings nur mit festem Host
Case $Button4
RunAs($Username ,$Domain ,$Password , 1, "cmd.exe /c C:\Admintools\psexec.exe \\192.168.1.1 cmd.exe" @SystemDir, @SW_SHOW) -
Habe nur persönliche Details wie z.B. Domain entfernt.
Wenn ich einen Syntax Check mache zeigt er mir auch diverse Fehler an.Habe die Fehler jetzt behoben, nun geht es auch danke
Ich hatte einige Sachen doppelt drin, Systemdir, SW_ usw
-
Das Script zu posten wäre ganz hilfreich.
Hey, anbei das Script.
AutoIt
Alles anzeigen#include <GUIConstants.au3> #Region ### START Koda GUI section ### Form= MouseMove(@DesktopWidth/2, @DesktopHeight/2, 0) ; instant $Form1 = GUICreate("AdminTools", 500, 500, 500, 500) WinMove($Form1, '', 700, 280) $Background = GUISetBkColor (0x000000) $Backpic = GUICtrlCreatePic('c:\Program Files (x86)\AutoIt3\Examples\GUI\200.jpg', 0, 0, 0, 0) $State = GUICtrlSetState(-1, $GUI_DISABLE) $Set = GUISetState(@SW_SHOW) $Button1 = GUICtrlCreateButton("AD Center als Admin", 150, 25, 200, 25, 0) GUICtrlSetColor(-1, $GUI_BKCOLOR_TRANSPARENT) $Button2 = GUICtrlCreateButton("Remote PC / Server herunterfahren", 150, 0, 200, 25, 0) GUICtrlSetColor(-1, $GUI_BKCOLOR_TRANSPARENT) $Button3 = GUICtrlCreateButton("Admin CMD - Lokal", 150, 50, 200, 25, 0) GUICtrlSetColor(-1, $GUI_BKCOLOR_TRANSPARENT) $Button4 = GUICtrlCreateButton("Admin Computer Verwaltung - Remote", 150, 75, 200, 25, 0) GUICtrlSetColor(-1, $GUI_BKCOLOR_TRANSPARENT) $Username = InputBox ( "Bitte deinen Admin-Usernamen eingeben", "Bitte deinen Admin-Usernamen eingeben", "", "") $Domain = "Meine Domain" $Password = InputBox ( "Bitte dein Passwort eingeben", "Bitte dein Passwort eingeben", "", "*") WinMove($Form1, '', 700, 280) GUISetState(@SW_SHOW) MouseMove(@DesktopWidth/2, @DesktopHeight/2, 0) ; instant #EndRegion ### END Koda GUI section ### if winexists("AdminTools") Then winactivate("AdminTools") EndIf While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 ;hier bestimmst du welcher button in diesem fall eben button1 RunAs($Username ,$Domain ,$Password , 2, "cmd.exe /c dsa.msc", @SystemDir, @SW_HIDE), @SystemDir, @SW_MAXIMIZE) ;Hier bestimmst du wie die Funktion heisst die bei einem klick auf dem Button aus geführt wird Case $Button2 ;hier bestimmst du welcher button in diesem fall eben button1 $sTarget = InputBox ( "Welcher Pc soll heruntergefahren werden?", "Welcher Pc soll heruntergefahren werden?", "", "") RunAsWait($Username ,$Domain ,$Password , 1, "cmd.exe /c shutdown -s -f -m \\" & $sTarget, @SystemDir, @SW_MAXIMIZE) ;Hier bestimmst du wie die Funktion heisst die bei einem klick auf dem Button aus geführt wird Case $Button3 ;hier bestimmst du welcher button in diesem fall eben button1 RunAs($Username ,$Domain ,$Password , 1, "cmd.exe", @SystemDir, @SW_MAXIMIZE) ;Hier bestimmst du wie die Funktion heisst die bei einem klick auf dem Button aus geführt wird Case $Button4 ;hier bestimmst du welcher button in diesem fall eben button1 $sTarget = InputBox ( "Auf welchem PC soll die Computerverwaltung gestartet werden?", "Auf welchem PC soll die Computerverwaltung gestartet werden?", "", "") RunAsWait($Username ,$Domain ,$Password , 1, "cmd.exe /c compmgmt.msc /computer:\\" & $sTarget, @SystemDir, @SW_MAXIMIZE), @SystemDir, @SW_MAXIMIZE) ;Hier bestimmst du wie die Funktion heisst die bei einem klick auf dem Button aus geführt wird EndSwitch WEnd Func _Func1 () ;Hier wird eine Funktion gestartet und zwar die funktion die oben dem Button1 zugewiesen wurde MsgBox(0, "Erfolgreich", "Somit wurde deine Button1 Funktion ausgeführt und die Gui beendet") Exit EndFunc WinWaitClose ( "AdminTools" [, "text" [, timeout = 0]] )
EDIT BugFix: Code in AutoIt-Tags gepackt
-
Danke, es hat geklappt.
Habe zu dem ganzen jetzt testweise eine GUI erstellt mit Buttons usw.
Problem ist jetzt nachdem ich ein Case ausgeführt habe z.B. Fahre den \\XXXXX Pc herunter geht das Programm zu,
was muss ich ergänzen das es offen bleibt?Vielen Dank
-
Hallo Liebe Com,
ich versuche gerade mit AutoIT einen Rechner neuzustarten, welcher in meiner Domain ist.
Den Namen möchte ich erst nach ausführen des Scriptes eingeben, quasi soll ein Popup kommen "Enter PC Name".Was ich bisher habe, was aber nicht funktioniert:
$Username = "Mein Admin ACC"
$Domain = "Meine Domain"
$Password = "Mein PW"
$sTarget = InputBox ( "Enter PC Name", "Enter PC Name", "", "")RunAsWait($Username ,$Domain ,$Password , 1, "cmd.exe /c shutdown -r -f -m \\$sTarget", @SystemDir, @SW_MAXIMIZE)
Wenn ich das ganze mit Shutdown -i mache und dort den PC Namen eintippe (ohne $sTarget) dann funktioniert es.
Mir wäre es aber wie gesagt lieber wenn ein Popup käme wo man nur noch den PC Namen eingibt, Enter und los gehts.Danke euch