frankreich
Goto Top

Call befehl als Admin!

Hallo liebes Forum!
Ich rufe in meinem Batchprogramm ein anderes Batchprogramm mit dem befehl "call" auf.
Das Programm das ich aufrufe muss aber als Administrator ausgeführt werden.
wie kann ich das jetzt als Admin aufrufen?
GLG Frankreich

Content-ID: 381790

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

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

SlainteMhath
SlainteMhath 31.07.2018 um 09:47:30 Uhr
Goto Top
Moin,

"runas" oder "psexec" sind die befehle/tools die du suchst.

lg,
Slainte
certifiedit.net
certifiedit.net 31.07.2018 um 09:48:04 Uhr
Goto Top
Frankreich
Frankreich 31.07.2018 um 09:52:27 Uhr
Goto Top
sollte das Programm auf mehrern Pc`s starten, ist das ganze auch user unabhängig?
danke für die schnellen meldungen
rubberman
rubberman 31.07.2018 um 22:43:25 Uhr
Goto Top
Warte ...
Erst einmal musst du verstehen was CALL tut. Es ist ein Irrtum, dass du ein anderes "Batchprogramm" aufrufst, im Sinne, dass du einen weiteren Prozess startest. Dem ist nicht so. Ein per CALL aufgerufenes Batchscript läuft im selben cmd.exe Prozess wie das aufrufende Script. Das ermölicht dir bspw. dass Werte von Variablen die im aufgerufenen Script geändert oder definiert wurden, anschließend auch im aufrufenden Script abgreifbar sind. Sobald du das zweite Script mit erhöhten Rechten startest, bedingt das einen weiteren cmd.exe Prozess, da logischerweise ein Prozess nicht verschiedene Rechte gleichzeitig haben kann. Die Effekte die dir CALL beschert, sind also nicht mehr gültig. Keine Ahnung ob das für deinen Fall von Interesse ist oder nicht.

Du kannst mit erhöhten Rechten starten, dafür gibt es mehrere Möglichkeiten. Die oben genannten Utilities zum einen, reine Scriptlösungen zum anderen. Wie auch immer, der Nutzer muss auch in der Lage sein, die angeforderten Rechte zu gewähren. Das heißt der User gehört bspw. zur lokalen Administratorengruppe und braucht nur den UAC Prompt zu bestätigen, oder er hat Zugang zu einem anderen Account mit Administratorrechten. Sonst funktioniert das nicht.

Was nun genau am sinnvollsten ist, ist mit den paar Informationen die du gegeben hast noch nicht wirklich zu beantworten. Was genau machst du denn noch im ersten Script (außer das zweite aufzurufen)? Muss das erste Script warten bis das zweite beendet wurde? Müssen Informationen zwischen beiden Prozessen ausgetauscht/übermittelt werden? Einfach ein bisschen mehr Kontext geben ...

Steffen