Mit Batch anders Programm als Administrator starten?

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 .

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

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
bodoooosdfer 
Fragesteller
 28.11.2019, 15:57

Das /B macht startet das dann also mit Adminrechten?

0
NianMao  28.11.2019, 16:13
@bodoooosdfer

nein. start benutzt den Benutzer, mit dem start aufgerufen wurde. also ja, wenn du start schon als administrator aufrufst.

0

Will da jemand was anstellen? ;)

Woher ich das weiß:Berufserfahrung
bodoooosdfer 
Fragesteller
 28.11.2019, 15:55

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.

1