creatorx
Goto Top

Befehle an CMD übergeben

OS: Win XP Pro

Hallo, ich bin neu hier und hoffe auf eine Antwort auf meine Frage.
Also ich bin als normaler User angemeldet und möchte per Batchscript die Eingabeaufforderung mit Adminrechten starten. Das mache ich mit RunAs:
"runas /user:Admin cmd "
Das klapt wunderbar, zuerst werde ich nach dem Passwort des Adminkontos gefragt und dann startet CMD mit Adminrechten. So, nun möchte ich aber das mein Batchscript die befehle in die cmd reinschreibt für die ich die Adminrechte brauche. Wie geht das?

Content-Key: 62786

Url: https://administrator.de/contentid/62786

Printed on: April 19, 2024 at 02:04 o'clock

Mitglied: 6741
6741 Jul 02, 2007 at 07:06:48 (UTC)
Goto Top
zb:

runas /user:%COMPUTERNAME%\Administrator
"%ComSpec% /C notepad"

die Suchfunktion ist klasse ....
Member: CreatorX
CreatorX Jul 02, 2007 at 12:34:07 (UTC)
Goto Top
"%ComSpec% /C notepad"
Was genau bedeutet das? Das das Notepad gestartet wird? Und wie übergibt das nun nen Befehl an CMD?
Member: miniversum
miniversum Jul 02, 2007 at 13:28:04 (UTC)
Goto Top
%comspec% IST die CMD (oder das was bei dir im system dafür eingestellt ist.
Starte mal die CMD im Windows udn tippe dort "echo %comspec% ein dann wirst dus sehen.
wenn du danach "%comspec% /?" bzw. "cmd /?" eingibst wirst du sehen das /C der cmd den Befehl übergibt der nach dem /C steht. in diesem fall also "nodepad.exe"

miniversum
Member: CreatorX
CreatorX Jul 02, 2007 at 13:42:42 (UTC)
Goto Top
Ok, vielen Dank.
Da wäre nur noch ein Problem das ich im ersten Post nicht geschrieben habe. Wie mache ich es das im selben Fenster mehrere Befehle übergeben werden?
runas /user:%COMPUTERNAME%\Administrator
"%ComSpec% /C befehl1"
"%ComSpec% /C befehl2"

Das funktioniert irgendwie nicht so ganz, es ist wichtig das die beiden (bzw beliebig viele) Befehle hintereinander im selben Fenster mit Adminrechten ausgeführt werden. Es kann auch sein das es nötig ist das der zweite Befehl ca 1-2 Sekunden nach dem Anderen ausgeführt wird, ist das auch möglich?
Member: miniversum
miniversum Jul 02, 2007 at 13:57:17 (UTC)
Goto Top
Schreib doch gleich ne Batch-Datei das ist am einfachsten. Die Pause von 1 bis 2 sekunden kannst du über den ping befehl hinbekommen.
also bei 2 sekunden z.b. so:
ping -n 2 localhost >NUL

miniversum
Member: CreatorX
CreatorX Jul 02, 2007 at 15:33:07 (UTC)
Goto Top
Ja ich hatte ja im ersten Post geschrieben das ich ne Batchdatei machen möchte. Danke, jetzt weiß ich wie ich das mit dem Warten von ein paar Sekunden hin bekomme. Fehlt nur noch das ich mehrere Befehle mit Adminrechten an CMD weitergeben möchte. Wie geht das?
Member: miniversum
miniversum Jul 02, 2007 at 15:47:09 (UTC)
Goto Top
Das meinte ich ja.. starte die ganze Batch mit Adminrechten...
runas /user:Admin batchdatei.bat
oder so sollte es auch gehen:
runas /user:Admin cmd /c batchdatei.bat

miniversum
Member: CreatorX
CreatorX Jul 02, 2007 at 16:07:58 (UTC)
Goto Top
So hatte ich es schon vorher probiert und auch jetzt nochmal. Hat leider nicht funktioniert.

Ok, ich werde mal erklären was genau ich machen möchte damit es nachzuvollziehen ist:
Ich möchte einen Rechner im Netzwerk herunterfahren. Das ganze funktioniert mit dem Befehl "shutdown -s -f -m \\<Computername>"
Leider brauche ich dafür auch die Adminrechte, auf dem Computer den ich herunterfahren möchte, um den Befehl auszuführen. Dazu benötige ich den Befehl "net use \\<Computername>\ipc$ <passwort> /user:<Administrator>"
Dieser Befehl wiederum benötigt aber zum Ausführen die Adminrechte des Computers von dem aus ich den anderen Rechner herunterfahren möchte (da ich als normaler Benutzer auf meinem Rechner angemeldet bin, WinXP Pro). Darum "runas /user:Admin"

Wenn ich das ganze Schritt für Schritt per Hand mache funktioniert es auch: Start>Ausführen>"runas /user:Admin cmd". Dann gebe ich das Passwort meines lokalen Adminkontos ein. Dann öffnet sich eine CMD mit Adminrechten und ich gebe ein: "net use \\<Computername>\ipc$ <passwort> /user:<Administrator>" und danach
"shutdown -s -f -m \\<Computername>".
Aber wie gesagt, mit deinem Beispiel funktioniert das leider nicht per Batchscript.
Member: miniversum
miniversum Jul 02, 2007 at 16:39:31 (UTC)
Goto Top
Na wenns nur zwei zeilen sidn kansnt du sie auch hintereinander schreiben. ich dachte es sind mehr.
Probiers mal so:
runas /user:Admin (net use \\<Computername>\ipc$ <passwort> /user:<Administrator> & shutdown -s -f -m \\<Computername>")
bzw. mit
runas /user:Admin cmd /C (net use \\<Computername>\ipc$ <passwort> /user:<Administrator> & shutdown -s -f -m \\<Computername>")

miniversum
Member: CreatorX
CreatorX Jul 02, 2007 at 17:28:59 (UTC)
Goto Top
Vielen Dank für deine Bemühungen. Leider funktioniert es immer noch nicht. Mit deinem Beispiel flakert das CMD Fenster zwar wie wild aber es passiert nix. CMD scheint wohl ein Problem mit "runas" da es mir die Parameter, also die Hilfedatei von runas aufruft und diese wohl in einer Schleife, daher das Flackern. Keine Ahnung warum, ich hatte sowas noch nie.
Mitglied: 6741
6741 Jul 02, 2007 at 18:45:41 (UTC)
Goto Top
diesen Effekt habe ich bei ping bla bla gehabt ...

davor ein

c:\windows\system32\

sollte gehen

oder die vari / path eintragen ...

gruß

hope it works
Member: CreatorX
CreatorX Jul 04, 2007 at 03:25:26 (UTC)
Goto Top
Mit dem Pfad hats leider auch nicht geklapt.
Nach sehr viel Rumprobiererei hats entlich mit exakt diesem Code hingehauen:

runas /user:Admin "%ComSpec% /C net use \\<Computername>\ipc$ <Passwort> /user:<Benutzername> & shutdown -s -m \\<Computername>"

Das funktioniert wunderbar und ich muss nichtmal eine Pause von 1-2 Sekunden zwischen den befehlen lassen. Vielen dank euch beiden für die Hilfe.

Ist es eigentlich sehr bedenklich das Adminpasswort eines seiner Rechner in so einer Batchdatei stehen zu haben? Um meine Lokalen Benutzer mache ich mir ja keine Sorgen, da die sowieso nicht an die Datei ran kommen, nur vor "Neugierige" aus dem Netz.....
Mitglied: 6741
6741 Jul 06, 2007 at 17:53:38 (UTC)
Goto Top
ich meine es wäre denklich

guck dir mal AutoIT an, damit verpackst du deine Batch in eine exe und die erste Hürde ist schwerer. Dann noch eine Verschlüsselung drauf und es ist TOP sicher ... bei der Verschlüsselung klappt es bei mir noch nicht ...