Erlangung von Administratorrechten in PowerShell


27

Ich habe nur ein Konto auf meinem Windows Vista-Computer und dieser Benutzer verfügt über Administratorrechte. Wenn ich jedoch versuche, einen Befehl in PowerShell auszuführen, um einen bestimmten Prozess abzubrechen, wird die Meldung "Zugriff verweigert" angezeigt. Wie werde ich Administrator?

Antworten:


14

Am einfachsten ist es, Powershell mit Verwaltungstoken zu starten. Klicken Sie dazu mit der rechten Maustaste auf PowerShell (oder eine Verknüpfung dazu) und klicken Sie auf "Als Administrator ausführen". Alternativ können Sie auch elevate.cmd verwenden .


25

Laut Microsoft besteht die Möglichkeit von Powershell v2 darin , mit der rechten Maustaste auf die Verknüpfung zu klicken und Als Administrator ausführen zu wählen .

Und um innerhalb eines Powershell-Fensters zu heben:

start-process powershell verb runAs

Was aus einer cmd.exe-Batchdatei, einer Verknüpfung oder einer Run-Zeile (wiederholt) ungefähr so ​​aussehen würde:

powershell "start-process powershell -verb runas"

10

Dies öffnet eine neue Powershell-Instanz:

function Run-Elevated ($scriptblock)
{
  # TODO: make -NoExit a parameter
  # TODO: just open PS (no -Command parameter) if $scriptblock -eq ''
  $sh = new-object -com 'Shell.Application'
  $sh.ShellExecute('powershell', "-NoExit -Command $scriptblock", '', 'runas')
}

Ich gehe davon aus, dass es dabei Probleme gibt - insbesondere erhalten Sie die Ausgabe Ihres Skriptblocks nicht im aufrufenden Skript zurück. Auf der anderen Seite wird es in der neuen PS-Instanz vorhanden sein, sodass Sie dort damit hacken können.


5

Wenn Sie PowerShell immer mit Administratorrechten ausführen möchten , können Sie mit der rechten Maustaste auf die PowerShell-Verknüpfung klicken, dann auf die Schaltfläche "Erweitert ..." auf der Registerkarte "Verknüpfung" klicken und dann "Als Administrator ausführen" auswählen.


0

Der einfache Weg...

So richten Sie einen einfachen Befehl ein , mit dem Sie in jeder PowerShell-Sitzung jederzeit Administratorrechte erhalten können!

Schritt 1: Öffnen Sie Ihr PowerShell-Profil. (Erlaube dem Editor, die Datei zu erstellen, wenn sie fehlt.)

notepad "$profile"

Schritt 2: Fügen Sie den folgenden Code an einer beliebigen Stelle in die Datei ein.

function GoAdmin { start-process powershell verb runAs }

Schritt 3: Starten Sie PowerShell neu. Der Befehl ist jetzt permanent verfügbar.

Schritt 4: Wenn Sie Administrator werden möchten, geben Sie einfach Folgendes ein GoAdmin (und die richtige Groß- / Kleinschreibung einzugeben; bei den PS-Funktionen wird die Groß- / Kleinschreibung nicht berücksichtigt). Sie können der Funktion natürlich auch einen anderen Namen geben Elevate, aber ich wollte kein Konfliktrisiko eingehen. Deshalb habe ich sie mit zwei Wörtern ohne Bindestriche benannt, um sicherzustellen, dass sie niemals mit den PowerShell-eigenen Funktionen in Konflikt gerät.

Beachten Sie, dass das Administratorfenster in einer separaten Shell geöffnet wird. Sie können die ursprüngliche Shell schließen oder geöffnet lassen. Wenn Ihre Administratorarbeit "große" Aufgaben wie das Hinzufügen / Ändern von Umgebungsvariablen ausführt, kann Ihre Benutzer-Shell (Nicht-Administrator) einfach etwas eingebenrefreshenv , um die Umgebung neu zu laden und die Änderungen abzurufen.

Also im Grunde genommen machen Sie einfach GoAdmindie Admin-Dinge wie das Installieren von Paketen (mit https://chocolatey.org/ natürlich!) Und schließen Sie dann das Admin-Fenster und führen Sie es refreshenvin Ihrer User-Shell aus! Voila.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.