Mit Batch anders Programm als Administrator starten?
Könnte mir da jemand ein Code beispiel geben?
4 Antworten
Um eine UAC-abfrage kommst Du mit dieser Batch nicht herum.
Hier eine Batch die wie jedes normale Programm um Adminrechte bittet.
self_Elevation.cmd
@echo off
title Admintest
chcp 65001 >nul & rem Umlaute anzeigen
set "elevator=%temp%\%~n0.elevate.js"
rem prüfen ob wir im Adminmodus sind... wenn ja mit :adminTasks weitermachen.
net session >nul 2>&1 && goto :adminTasks
rem Wichtig!!!! set -Angaben immer in Anführungszeichen !!! ...Steuerzeichen enthalten
rem nach den "=" die Befehlszeile , welche Aufgerufen werden soll.
set "elevationCmdLine=cd /d "%cd%"&call "%~f0" %*"
rem & durch maskiertes ^& ersetzen
set "elevationCmdLine=%elevationCmdLine:&=^&%"
rem da in Javascript ein einzelner Backslash als Steuerzeichen (Escapecharakter) gewertet wird, alle Backslashes verdoppeln
set "elevationCmdLine=%elevationCmdLine:\=\\%"
rem ElevatorScript in den TempOrdner schreiben
echo new ActiveXObject("shell.application").ShellExecute('cmd','/c %elevationCmdLine% ' ,'','runas',4); >"%elevator%"
rem ElevatorScript ausführen
cscript //nologo "%elevator%"
exit /b
:adminTasks
rem Hier kommt alles hin, was als Admin ausgeführt werden soll
rem das Folgende dient der Demonstration:
echo Ausführung mit Adminrechten.
echo Diese Batch : %~f0
echo Arbeitsverzeichnis : %cd%
echo Übergebene Argumente:
rem die Batch kann als DropTarget benutzt werden. zum Testen einfach ein paar beliebige Dateien auf die Batch ziehen...
rem diese werden zur Demo hier angezeigt...
for %%a in (%*) do (echo %%a)
pause
Mit standard Windowsprogrammen gibt es keine für jederman zugängliche Methode um ohne die Abfrage in den Adminmodus durchzustarten...
Mit PSexec kannst du den Profilname und das Passwort in der Kommandozeile übergeben.
psexec -u username -p passwort "lw:\pfad\programm" Arguments optional
...dies hat den entscheidenden Nachteil, das eine Schadsoftware nu nach Kommandozeilen mit dem String psexec scannen mus und so deine Adminpasswort erhält .
du kannst in den Eigenschaften einer Verknüpfung angeben, dass diese als Administrator gestartet werden soll.. (Bei Win10)
- @echo on
- start /B /min mousemapper.exe
- start /B /min coduo_minimizer.exe
- cd ..
- cd spiele
- cd Call of Duty
- coduomp.exe
- taskkill /IM coduo_minimizer.exe
- taskkill /IM mousemapper.exe
nein. start benutzt den Benutzer, mit dem start aufgerufen wurde. also ja, wenn du start schon als administrator aufrufst.
Will da jemand was anstellen? ;)
Ne warum?
Ich wollte die Batch halt als Admin starten, um dann andere Apps für mich zu öffnen. Wollte nicht alle einzeln öffnen. Außerdem brauchen ein paar Adminrechte, wie der Logitech Launcher.
Das /B macht startet das dann also mit Adminrechten?