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?

Brian
quelle

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 .

Knox
quelle
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"
Nathan Hartley
quelle
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.

user2278
quelle
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.

Ryan Fisher
quelle
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.

Mitch McMabers
quelle