PowerShell: Script mit administrativen Rechten ausführen

PowerShell Icon (c)

PowerShell bietet seinen Benutzern keine Funktion, eine Privilegienerweiterung durchzuführen.
Als Workaround dient eine Routine, welche als Kopfzeile eingebunden, das gesamte darauf folgende Script in einer neuen PowerShell Instanz mit administrativen Rechten ausführt:

If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
    Write-Host "Running elevated..."
    $arguments = "& '" + $myinvocation.mycommand.definition + "'"
    Start-Process powershell -Verb runAs -ArgumentList $arguments
    Break
}

Sind die gewünschten Rechte bereits gegeben, öffnet sich keine neue Instanz.

Eine Antwort auf “PowerShell: Script mit administrativen Rechten ausführen

  1. Michael Steinmüller

    Hallo André,
    ich weiß dein Beitrag ist schon einige Jahre alt, ich hoffe hier dennoch Hilfe zu erhalten.
    Ich habe deine Routine so entsprechend in mein Powershellskript eingebunden, diese hatte auch problemlos funktioniert.
    Zumindest bis zum nächsten Neustart meines Clients.
    Seitdem habe ich das Problem dass bei Ausführung des Skripts als normaler Benutzer (ohne Adminrechte) in Dauerschleife neue Powershell Instanzen geöffnet werden.
    Das gleiche Phänomen habe ich nun auch bei einem zweiten Client bei dem ich es getestet habe.
    Starte ich das Skript direkt als Admin habe ich keinerlei Probleme.
    Viele Grüße
    Michael

Schreibe einen Kommentar

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