Batch mit Admin-Rechten starten
Hallo Forum,
ich schreibe gerade ein VBA-Skript, wo an einer Stelle mit Hilfe des Shell-Befehls eine Batch-Datei aufgerufen werden soll. In der Batch-Datei sind Befehle, die nur mit Admin-Rechten ausgeführt werden können.
Ich bin lokaler Admin und kann über Rechtsklick und "Als Administrator ausführen" auch die Batch problemlos starten. In VBA kann ich jedoch keinen Parameter mitliefern, mit welchen Rechten die Datei gestartet werden soll.
Ich habe eine Verknüpfung auf die Batch angelegt und dort in den Einstellungen festgelegt, dass die Batch immer mit Admin-Rechten zu starten ist. Rufe ich die Verknüpfung im Explorer auf, läuft die Batch auch sauber durch. Starte ich die Verknüpfung per VBA-Shell-Befehl wird sie jedoch wieder mit normalen Nutzerrechten gestartet.
Gibt es ggf. noch einen anderen Weg, die Batch zu laufen zu bewegen? Oder kann ich auf die Batch verzichten und dem Shell-Befehl von VBA irgendwie doch mitteilen, dass die Befehle als Admin gestartet werden sollen?
Bin für jeden Tipp dankbar.
Vielen Dank im voraus,
M. Born
ich schreibe gerade ein VBA-Skript, wo an einer Stelle mit Hilfe des Shell-Befehls eine Batch-Datei aufgerufen werden soll. In der Batch-Datei sind Befehle, die nur mit Admin-Rechten ausgeführt werden können.
Ich bin lokaler Admin und kann über Rechtsklick und "Als Administrator ausführen" auch die Batch problemlos starten. In VBA kann ich jedoch keinen Parameter mitliefern, mit welchen Rechten die Datei gestartet werden soll.
Ich habe eine Verknüpfung auf die Batch angelegt und dort in den Einstellungen festgelegt, dass die Batch immer mit Admin-Rechten zu starten ist. Rufe ich die Verknüpfung im Explorer auf, läuft die Batch auch sauber durch. Starte ich die Verknüpfung per VBA-Shell-Befehl wird sie jedoch wieder mit normalen Nutzerrechten gestartet.
Gibt es ggf. noch einen anderen Weg, die Batch zu laufen zu bewegen? Oder kann ich auf die Batch verzichten und dem Shell-Befehl von VBA irgendwie doch mitteilen, dass die Befehle als Admin gestartet werden sollen?
Bin für jeden Tipp dankbar.
Vielen Dank im voraus,
M. Born
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 190501
Url: https://administrator.de/forum/batch-mit-admin-rechten-starten-190501.html
Ausgedruckt am: 04.04.2025 um 08:04 Uhr
9 Kommentare
Neuester Kommentar
Hallo,
Schlechte Idee. Da kann dann jeder das Passwort auslesen.
Gruß,
Peter
Schlechte Idee. Da kann dann jeder das Passwort auslesen.
In VBA kann ich jedoch keinen Parameter mitliefern, mit welchen Rechten die Datei gestartet werden soll.
Warum nicht?von VBA irgendwie doch mitteilen, dass die Befehle als Admin gestartet werden sollen?
Was hast du denn bis jetzt und wie rufst du die Batchdatei tatsächlich auf?Gruß,
Peter
Hallo,
Kein Fehler. Ist by Design so. Du solltest dir mal runas anschauen. Dann könnte dein so aussehen. Hier wird nach einem PWD gefragt. Oder du baust dir eine setup.exe. Aufgrund des Schlüsselworts Setup.exe wird auch die UAC angetriggert hier nach erhöhten Rechten zu fragen.
Gruß,
Peter
Kein Fehler. Ist by Design so. Du solltest dir mal runas anschauen. Dann könnte dein
Shell "runas /user:administrator /noprofile ""C:\Users\Born\Documents\SharpDevelop Projects\tools\reg.bat - Verknüpfung.lnk"""
Gruß,
Peter
Hallo,
Sollte aber jetzt nicht mehr das Problem sein, oder?

Zuerst prüfe das du auch den richtigen Benutzer in korrekter Schreibweise verwendest. Ein runas -? hilft da. Teste es im CMD Fenster aus. Inhalt der Testbatch.bat ist Du kannst natürlich auch /user:benutzer@domäne.suffix nehmen. Es bleibt dir überlassen. Wenn das korrekt funktioniert kannst du es mit einer Verknüpfung testen. Du solltest dann den Hinweis bekommen das die .lnk Datei keine gültige Win32 Anwendung ist. Dieses kann gelöst werden indem du die .lnk Datei folgenderweise aufrufst .
Und jetzt verpacken wir das ganze für deinen VBA aufruf Es kann allerdings sein das dir das ü wegen unterschiedliche Zeichensätze schwierigkeiten macht.
So sollte es jetzt gehen.
Gruß,
Peter
Sollte aber jetzt nicht mehr das Problem sein, oder?
Dein o.g. Code funktioniert leider auch nicht.
Doch, das tut er. Ich habe allerdings direkt eine Batchdatei getestet, keine VerknüpfungZuerst prüfe das du auch den richtigen Benutzer in korrekter Schreibweise verwendest. Ein runas -? hilft da. Teste es im CMD Fenster aus.
runas /user:Domäne\Benutzer /noprofile "E:\Daten\Testdaten\Testbatch.bat"
pause
cls
set
pause
dir e: /p
pause
runas /user:Domäne\Benutzer /noprofile "E:\Daten\Testdaten100\weiterer Ordner\Testbatch.bat.lnk"
runas /user:Domäne\Benutzer /noprofile "rundll32 shell32.dll,ShellExec_RunDLL E:\Daten\Testdaten100\weiterer Ordner\Testbatch.bat.lnk"
Und jetzt verpacken wir das ganze für deinen VBA aufruf
Shell "runas /user:Domäne\Benutzer /noprofile ""rundll32 shell32.dll,ShellExec_RunDLL C:\Users\Born\Documents\SharpDevelop Projects\tools\reg.bat - Verknüpfung.lnk""
So sollte es jetzt gehen.
Gruß,
Peter
Hallo,
Machst du dann bitte noch ein Wie kann ich einen Beitrag als gelöst markieren? dran? Danke.
Gruß,
Peter
Machst du dann bitte noch ein Wie kann ich einen Beitrag als gelöst markieren? dran? Danke.
Gruß,
Peter