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.

9voto

raphie Punkte 3229

Sie können auch erzwingen, dass die Anwendung als Administrator geöffnet wird, sofern Sie über ein Administratorkonto verfügen.

enter image description here

Suchen Sie die Datei, Rechtsklick > Eigenschaften > Verknüpfung > Erweitert und prüfen Als Administrator ausführen

Klicken Sie dann auf OK.

8voto

Rakha Punkte 1714

Ich füge meine 2 Cents hinzu. Meine einfache Version basiert auf Net Session, die bisher unter Windows 7 / Windows 10 immer funktioniert. Warum es übermäßig kompliziert machen?

if (!(net session)) {$path =  "& '" + $myinvocation.mycommand.definition + "'" ; Start-Process powershell -Verb runAs -ArgumentList $path ; exit}

einfach an den Anfang des Skripts hinzufügen und es wird als Administrator ausgeführt.

6voto

VoidStar Punkte 4896

Dieses Verhalten ist gewollt. Es gibt mehrere Sicherheitsebenen, da Microsoft wirklich nicht wollte, dass .ps1-Dateien der neueste E-Mail-Virus sind. Einige Leute finden, dass dies dem Konzept der Aufgabenautomatisierung zuwiderläuft, was auch richtig ist. Das Sicherheitsmodell von Vista+ besteht darin, Dinge zu "de-automatisieren", so dass der Benutzer sie akzeptieren muss.

Ich vermute jedoch, wenn Sie die Powershell selbst als erweitertes System starten, sollte sie in der Lage sein, Batchdateien auszuführen, ohne das Kennwort erneut abzufragen, bis Sie die Powershell schließen.

6voto

Disillusioned Punkte 14224

Einige der Antworten hier sind nahe dran, aber ein bisschen mehr Arbeit als nötig.

Erstellen Sie eine Verknüpfung zu Ihrem Skript und konfigurieren Sie es als "Als Administrator ausführen":

  • Erstellen Sie die Verknüpfung.
  • Klicken Sie mit der rechten Maustaste auf die Verknüpfung und öffnen Sie Properties...
  • bearbeiten Target de <script-path> zu powershell <script-path>
  • Klicken Sie auf Advanced... und ermöglichen Run as administrator

5voto

hardeep Punkte 167

Hier erfahren Sie, wie Sie einen erhöhten Powershell-Befehl ausführen und dessen Ausgabe in einer Windows-Batchdatei in einem einzigen Befehl sammeln (d. h. kein ps1-Powershell-Skript schreiben).

powershell -Command 'Start-Process powershell -ArgumentList "-Command (Get-Process postgres | Select-Object Path | Select-Object -Index 0).Path | Out-File -encoding ASCII $env:TEMP\camp-postgres.tmp" -Verb RunAs'

Oben sehen Sie, dass ich zuerst eine Powershell mit erhöhter Eingabeaufforderung starte und dann darum bitte, eine andere Powershell (Sub-Shell) zu starten, um den Befehl auszuführen.

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