Wie führe ich einen Befehl mit erhöhten Berechtigungen innerhalb einer PowerShell-/cmd.exe-Sitzung aus?

Wie führe ich einen Befehl mit erhöhten Berechtigungen innerhalb einer PowerShell-/cmd.exe-Sitzung aus?

Unter Linux kann man sufür mehrere Befehle Root (Administrator) werden oder sudo ...einen Befehl als Root ausführen.

Gibt es in Windows etwas Ähnliches für PowerShell oder cmd.exe, das es mir ermöglicht, einen Befehl mit erhöhten Berechtigungen auszuführen (z. B. das Erstellen eines symbolischen Links), ohne ein neues Fenster zu öffnen?

Antwort1

Sudo für cmd

@echo Set objShell = CreateObject("Shell.Application") > %temp%\sudo.tmp.vbs
@echo args = Right("%*", (Len("%*") - Len("%1"))) >> %temp%\sudo.tmp.vbs
@echo objShell.ShellExecute "%1", args, "", "runas" >> %temp%\sudo.tmp.vbs
@cscript %temp%\sudo.tmp.vbs

Nicht mein Code, ich gebe ihn nur weiter. Speichern Sie ihn als sudo.cmd und fügen Sie ihn in system32 oder irgendwo in Ihrem PATH ein. Dann können Sie Dinge tun wie:

sudo test.bat

Und test.bat würde mit erhöhten Berechtigungen ausgeführt.

Antwort2

In Powershell gibt es das Cmdlet Get-Credential, Sie können es sogar einer Variablen zuweisen und später in Ihren Powershell-Befehlen verwenden.

Sieh dir das anVerknüpfungfür mehr Informationen...

verwandte Informationen