IT

PowerShell: Sudo-Befehl wie unter Linux nutzen für Administratorrechte?

Wer die PowerShell nutzt, stößt sehr wahrscheinlich nach kurzer Zeit auf Befehle die Administratorrechte erfordern. Kommt man aus dem Linux-Umfeld, dann ist man es gewohnt einfach ein „sudo“ (superuser do) voranzustellen. Dadurch wird der gewünschte Befehl mit Root- bzw. Administratorrechten ausgeführt. Geht das auch in der PowerShell?

Sudo in der PowerShell – Schnelllösung

Am einfachsten ist es, mit folgenden Befehlen in einer administrativen PowerShell-Konsole das Tool „sudo“ zu installieren, welches die Funktionalität in der Windows PowerShell nachahmt.

Danach lässt sich z. B. folgender Befehl ausführen:

Lediglich eine UAC-Abfrage, wie man sie von der Installation mancher Software kennt wenn Administratorrechte benötigt werden, wird dann erscheinen und muss bejaht werden.

 

Problem mit administrativen PowerShell-Konsolen

Unter Windows wird ein Prozess zur Sicherheit normalerweise nicht mit Administratorrechten gestartet. Dadurch ergibt sich, dass man dies für viele Aufgaben selber machen muss. Dies ist nicht besonders schwer, gerät aber leicht in Vergessenheit. So kommt es, dass ich auch schon gefühlt 1000 mal die PowerShell oder CMD ohne die benötigten Rechte geöffnet habe. Nur um dann durch einen solchen Fehlertext darauf hingewiesen zu werden:

In dem Fall hilft nur wieder schließen und erneut per Klick im Kontextmenü auf „Als Administrator ausführen“ starten.

Leider ist dies die einzige direkt nutzbare Möglichkeit mit Windows-Bordmitteln. Im Gegensatz zu sudo wird hier aber auch direkt die ganze Sitzung als Administrator ausgeführt und nicht nur einzelne Befehle.

Lediglich auf einem Windows Server oder wenn die UAC ausgeschaltet ist, dürfte unter dem Administrator-Account die PowerShell-Konsole sofort mit Administratorrechten gestartet werden.

 

Lösung um sudo in der PowerShell zu nutzen

Eine einfache Lösung für dieses Problem gibt es eigentlich nur mit Drittanbietersoftware.

Mit Hilfe eines kostenlosen Paketmanagers wie Chocolately oder Scoop kann man sich recht einfach das Tool sudo für die PowerShell installieren.

Hierzu benötigt man zuerst Scoop oder Chocolately. Für Chocolately muss man den folgenden Befehl in einer administrativen PowerShell-Konsole ausführen:

 

Danach reicht dieser Befehl um sudo zu installieren:

 

Im Anschluss kann sudo, wie man es von Linux gewohnt ist, auch in der PowerShell benutzt werden um ein Programm mit administrativen Rechten aufzurufen. Ebenfalls können Parameter mit übergeben werden.

Ein beispielhafter Aufruf um Notepad mit administrativen Rechten zu öffnen würde so aussehen:

Einen PowerShell-Befehl kann man z. B. so absetzen:

 

Allerdings sollte man bei der Erstellung von Skripten nicht vergessen, dass „sudo“ nicht unbedingt auf den Zielsystemen installiert ist. Den Befehl sollte man also eher nur manuell in der PowerShell-Konsole verwenden. In Skripten gibt es andere Möglichkeiten um den Administrator-Account zu verwenden oder ohne diesen abzubrechen. (Hierzu folgt noch ein eigener Artikel)

 

Weitere interessante Artikel zur Windows Powershell:

Screenshots mit PowerShell automatisch unter Windows speichern
Welche PowerShell-Version habe ich? – PowerShell-Version anzeigen
Was ist PowerShellCore? Windows PowerShell unter Linux und MacOS?
Powershell und CMD: Clear um Konsole zu leeren?
Powershell: Sudo-Befehl wie unter Linux nutzen für Administratorrechte?
COM-Port eines Geräts ändern per Powershell
CMD/Powershell: Ping-Ergebnis mit Errorlevel auswerten
Powershell: Netzwerkadapter-Konfiguration ändern (IP-Adresse, Gateway, DNS, DHCP)
Powershell-Skript als Benutzer-Anmeldeskript in einer Domäne nutzen?
Powershell: Fenster nach Skriptausführung nicht automatisch schließen
Powershell: UTF8-Problem beim Export
XML-Bearbeitung mit Powershell
Replace und Escaping in Powershell
MessageBox mit Powershell auf anderen Computern anzeigen
While- und Until-Schleifen in PowerShell und Batch
Einfaches inkrementelles Backup mit Powershell
Einfache Außer-Haus-Sicherung mit Powershell
Schnittstelle von XML zu MS-SQL mit Powershell realisieren
Powershell: Automatische Anwendungssteuerung
Macht die ExecutionPolicy für Powershell-Skripte Sinn?
Wiederkehrende E-Mail-Abwesenheitsnotiz für Outlook mit Powershell
HyperV-Netzwerkadapter per Powershell umbenennen und entfernen
Powershell: DELL Service Tags auslesen
Powershell-Backup-Skript für den Thunderbird-Profilordner
Download-Skript in Powershell
Einfache Powershell-Skripte
Java-Anwendungen über CMD oder Powershell starten
Pfad im Explorer schneller kopieren – auch als vollständigen UNC-Pfad
Windows 11: Startmenü anpassen, klassische Taskleiste, links ausrichten
Wie lange läuft mein PC schon? – PC Laufzeit auslesen unter Windows 10
Windows 10: Standorttyp des Netzwerks ändern
Windows Server 2016: WSUS startet nicht vernünftig
 
Tobias Langner

Tobias Langner

Ich arbeite seit mehreren Jahren als Software-Release-Manager, zuvor als IT-Administrator, bin ausgebildeter Fachinformatiker für Systemintegration und Studium-"Pausierer" an der FernUni Hagen. Achtung: Für die Richtigkeit der zur Verfügung gestellten Informationen, Skripte, etc. übernehme ich keine Gewähr. Deren Nutzung geschieht ausdrücklich auf eigene Gefahr!

Alle Beiträge ansehen von Tobias Langner →

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert