426 Stimmen

Ausführen eines Befehls als Administrator mit PowerShell?

Wenn Sie der administrative Benutzer eines Systems sind, können Sie mit der rechten Maustaste auf ein Batch-Skript klicken und es als Administrator ausführen, ohne das Administratorkennwort eingeben zu müssen.

Ich frage mich, wie ich dies mit einem PowerShell-Skript erreichen kann. Ich möchte mein Kennwort nicht eingeben müssen; ich möchte nur den Rechtsklick nachahmen Als Administrator ausführen Methode.

Nach allem, was ich bisher gelesen habe, müssen Sie das Administratorkennwort angeben.

5 Stimmen

Pruebe gsudo . Ein kostenloses Open-Source-Sudo für Windows, das die Ausführung als Administrator über die Befehlszeile ermöglicht. Es erscheint ein UAC-Pop-up.

2voto

DupDup Punkte 191

Eine andere, einfachere Lösung ist, dass Sie auch mit der rechten Maustaste auf " C:\Windows\System32\cmd.exe " und wählen Sie "Als Administrator ausführen", dann können Sie jede Anwendung als Administrator ausführen, ohne ein Kennwort eingeben zu müssen.

1voto

Joe Coder Punkte 4293

Die zuverlässigste Methode, die ich gefunden habe, ist, sie in eine sich selbst aufrichtende .bat-Datei zu packen:

@echo off
NET SESSION 1>NUL 2>NUL
IF %ERRORLEVEL% EQU 0 GOTO ADMINTASKS
CD %~dp0
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 0); close();"
EXIT

:ADMINTASKS

powershell -file "c:\users\joecoder\scripts\admin_tasks.ps1"

EXIT

Die .bat prüft, ob Sie bereits Administrator sind und startet das Skript bei Bedarf als Administrator neu. Es verhindert auch, dass fremde "cmd"-Fenster mit dem 4. Parameter von ShellExecute() eingestellt auf 0 .

0voto

Patrick Burwell Punkte 109

Erhöhte PowerShell über Start>Ausführen

Sie können die erweiterte Powershell in 2012R2 oder 2016 nicht über den Befehl "Ausführen" ausführen, ohne die Shell zweimal zu starten:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell -Befehl "saps PowerShell -Verb RunAs "

0voto

mark deacon Punkte 47

Dies ist eine Klarstellung ...

Die Powershell RUNAS / SAVECRED-Anmeldeinformationen "sind nicht sicher". Ich habe es ausprobiert und es fügt die Admin-Identität und das Kennwort in den Anmeldeinformations-Cache ein und kann an anderer Stelle verwendet werden OOPS! Wenn Sie dies getan haben, schlage ich vor, Sie überprüfen und entfernen Sie den Eintrag.

Überprüfen Sie Ihr Programm oder Ihren Code, denn die Microsoft-Richtlinie besagt, dass Sie keinen gemischten Benutzer- und Admin-Code im selben Code-Blob haben dürfen, ohne dass die UAC (der Einstiegspunkt) das Programm als Admin ausführt. Unter Linux wäre dies sudo (das Gleiche).

Die Benutzerkontensteuerung hat 3 Arten: eine Eingabeaufforderung oder einen im Manifest des Programms generierten Einstiegspunkt. Sie verleiht dem Programm keine Berechtigung, d.h. wenn keine UAC vorhanden ist und das Programm Administratorrechte benötigt, wird es fehlschlagen. Die UAC als Administratoranforderung ist jedoch gut, da sie die Ausführung von Code ohne Authentifizierung und die Ausführung von gemischtem Code auf Benutzerebene verhindert.

0voto

Lee Chee Kiam Punkte 10473

Befolgen Sie zusätzlich zu Shay Levys Antwort den folgenden Aufbau (nur einmal)

  1. Starten Sie eine PowerShell mit Administratorrechten.
  2. Stack Overflow Frage folgen PowerShell sagt: "Die Ausführung von Skripts ist auf diesem System deaktiviert." .
  3. Legen Sie Ihre .ps1-Datei in einem der PATH Ordnern, zum Beispiel. Windows \System32 Ordner

Nach der Einrichtung:

  1. P Win + R
  2. Rufen Sie auf. powershell Start-Process powershell -Verb runAs <ps1_file>

Sie können nun alles in nur einer Befehlszeile ausführen. Das obige funktioniert unter Windows 8 Basic 64-bit.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X