Jump to content

"Als Administrator ausführen" an der Eingabeaufforderung


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Im Windows-Explorer und allem, was mit der grafischen Shell zusammenhängt, kann man Programme per Rechtsklick aus dem Kontextmenü "Als Administrator ausführen". Dabei geht es weniger um Benutzer und Benutzergruppen mit solchen Namen, sondern um die "Benutzerkontensteuerung" UAC und die Ausführung mit den Rechten einer höheren Klasse (elevated privileges).

 

Aus guten Grund erscheint bei einem solchen Versuch eine Sicherheitsabfrage. Für Benutzer, die der Gruppe der Administratoren angehören (also ein administratives Benutzerkonto haben) genügt ein Klick auf einen "Ja"-Button, bei Benutzern mit eingeschränktem Benutzerkonto muss dafür stellvertretend die Anmeldung eines administrativen Nutzerkontos eingegeben werden.

 

Was mir in Windows bisher fehlt, ist die Möglichkeit, auch an der Eingabeaufforderung oder in Batch-Dateien einzelne Programme mit erhöhten Rechten ausführen zu können, auch wenn ansonsten der aufrufende Kommandointerpreter nicht selber mit erhöhten Rechten läuft. Ich möchte dafür also nicht gleich die cmd.exe (oder PowerShell oder den Far manager usw.) "als Administrator ausführen", sondern nur ab und zu mal einen Befehl entsprechend durch Eintippen oder im Verlaufe einer Batch-Sequenz mit erhöhten Rechten ausführen. Meinetwegen darf dafür gern der UAC-Dialog erscheinen, soll er ja auch.

 

Es gibt eine ganze Reihe Vorschläge, dies mit runas.exe und dem Start als Benutzer "Administrator" zu tun. Nur hat das mehrere Haken: Erstens darf sich der Benutzer "Administrator" (aus gutem Grund) sicherlich meist nicht interaktiv anmelden, außer vielleicht im "Abgesicherten Modus", und deshalb wird wohl in meinen Versuchen auch immer ein derartiger Aufruf verweigert:



runas [...] /user:administrator program

Zweitens bedeutet das Ausführen unter einem administrativen Benutzerkonto trotzdem nicht grundsätzlich, dass damit auch erhöhte Rechte erteilt werden. Und drittens sollte man das Passwort des "Administrator"-Kontos gar nicht wissen...

 

Ein CLI-Programm mit der Funktion "starte ein Programm mit administrativen UAC-Rechten" ist mir von Microsoft bisher nicht bekannt. Es geht wohl lediglich anders herum:



runas /trustlevel:Standardbenutzer program

In aktuellen Linux-Distributionen gibt es die sudo-Methode, bei der Mitglieder einer Gruppe von Super-Usern (sudoers) berechtigt sind, mit ihrem eigenen Passwort über den Befehl sudo die Befehle auszuführen, für die man sonst die Rechte des Nutzers root benötigt. So etwas gibt es zwar auch für Windows, aber das wäre noch mal eine zusätzlich zu installierende Verwaltungsebene. Die UAC reicht dafür aus, man bräuchte eigentlich nur ein Kommando wie "runasadmin"...

 

Bei Jürgen Lüthje habe ich nun entsprechende Freeware gefunden: RunAsAdmin 1.01

 

Damit wäre dann auch das Problem zu lösen, das ich immer mal mit externen NTFS-Datenträgern habe, dass ich den Verzeichnissen darauf erst mal Schreibberechtigung für die Gruppe "Benutzer" zuweisen muss, damit sie an mehreren PCs zum Datenaustausch verwendbar sind:



@ECHO OFF
REM ohne Parameter aufgerufen
IF "%1" == "" GOTO syntax
REM Versuch, das Wurzelverzeichnis zu übergeben
IF "%~p1" == "\\" GOTO syntax
RunAsAdmin icacls "%1\*" /grant Benutzer:M /T
GOTO :end
:syntax
ECHO Erteilt Schreibberechtigung für ein Verzeichnis und alle enthaltenen Dateien und Unterverzeichnisse
ECHO WARNUNG: *NICHT* auf das Wurzelverzeichnis (X:\) anwenden!
ECHO Syntax: %~n0 ^<Lw:\Pfad^>
:end

Falls so etwas doch noch mit Bordmitteln möglich ist, würde ich mich über Hinweise freuen. Kleiner Nachteil ist natürlich, dass sich für den mit erhöhten Rechten aufgerufenen Befehl ein neues Interpreterfenster öffnet und danach verschwindet; wer am Ende warten will, muss vielleicht doch mit zusätzlicher Batch inkl. PAUSE oder mit "cmd /k" arbeiten.

bearbeitet von LigH
Link zu diesem Kommentar

Hi LigH,

 

sudo liefert ähnliche Sicherheitsprobleme wie runasadmin, wie die vielen Sicherheitslücken unter Linux zeigen,k die auf das SUID-Bit zurückgeführt werden können. Wie Du in einem Script erhöhte Rechte anfordern kannst, findest Du zum Beispiel in Creating a Self-Elevating Script oder New Elevation PowerToys for Windows Vista oder Self Elevate VBScript:

'Re-runs the process prompting for priv elevation on re-run
sub uacPrompt
  
  'Check if we need to run in C or W script
  interpreter = "wscript.exe"
  If Instr(1, WScript.FullName, "CScript", vbTextCompare) = 0 Then
    interpreter = "wscript.exe"
  else
    interpreter = "cscript.exe"
  end if
 
  'Start a new instance with an elevation prompt first
  Set shellApp = CreateObject("Shell.Application")
  shellApp.ShellExecute interpreter, Chr(34) & WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
 
  'End the non-elevated instance
  WScript.Quit
end sub
Dass der User 'Administrator' ne Dir nicht funktioniert, liegt daran, dass der seit Vista standardmäßig deaktiviert ist.

 

CMD-Shells kann man übrigens aus einer CMD-Shell auch mit Parametern aufrufen und darüber steuern, ob sie im Hintergrund laufen sollen oder ob sie das Fenster zum Ende schliessen oder stehen lassen sollen. Probier mal cmd /k z.B, cmd /? gibt Dir mehr Infos.

 

Have fun!

Daniel

bearbeitet von Daniel -MSFT-
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...