426 Stimmen

Ausführen eines Befehls als Administrator mit PowerShell?

Wenn Sie der administrative Benutzer eines Systems sind, können Sie mit der rechten Maustaste auf ein Batch-Skript klicken und es als Administrator ausführen, ohne das Administratorkennwort eingeben zu müssen.

Ich frage mich, wie ich dies mit einem PowerShell-Skript erreichen kann. Ich möchte mein Kennwort nicht eingeben müssen; ich möchte nur den Rechtsklick nachahmen Als Administrator ausführen Methode.

Nach allem, was ich bisher gelesen habe, müssen Sie das Administratorkennwort angeben.

5 Stimmen

Pruebe gsudo . Ein kostenloses Open-Source-Sudo für Windows, das die Ausführung als Administrator über die Befehlszeile ermöglicht. Es erscheint ein UAC-Pop-up.

0voto

Travis Runyard Punkte 157

Um die Ausgabe des Befehls an einen Textdateinamen anzuhängen, der das aktuelle Datum enthält, können Sie etwa so vorgehen:

$winupdfile = 'Windows-Update-' + $(get-date -f MM-dd-yyyy) + '.txt'
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -Command `"Get-WUInstall -AcceptAll | Out-File $env:USERPROFILE\$winupdfile -Append`"" -Verb RunAs; exit } else { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -Command `"Get-WUInstall -AcceptAll | Out-File $env:USERPROFILE\$winupdfile -Append`""; exit }

0voto

Rincewind Punkte 402

Ich habe noch nicht gesehen, wie ich es selbst machen kann, also probieren Sie es aus. Es ist viel einfacher zu folgen und hat einen viel kleineren Fußabdruck:

if([bool]([Security.Principal.WindowsIdentity]::GetCurrent()).Groups -notcontains "S-1-5-32-544") {
    Start Powershell -ArgumentList "& '$MyInvocation.MyCommand.Path'" -Verb runas
    }

Ganz einfach: Wenn die aktuelle Powershell-Sitzung mit Administratorrechten aufgerufen wurde, wird die bekannte SID der Administratorgruppe in den Gruppen angezeigt, wenn Sie die aktuelle Identität erfassen. Selbst wenn das Konto Mitglied dieser Gruppe ist, wird die SID nicht angezeigt, es sei denn, der Prozess wurde mit erhöhten Anmeldeinformationen aufgerufen.

Nahezu alle diese Antworten sind eine Abwandlung der äußerst beliebten Methode von Ben Armstrong von Microsoft, wie man es schaffen kann, ohne wirklich zu verstehen, was es eigentlich tut und wie man dieselbe Routine nachahmen kann.

-2voto

bilal-atlanta Punkte 19

Es stellte sich heraus, dass es zu einfach war. Alles, was Sie tun müssen, ist, ein cmd als Administrator auszuführen. Geben Sie dann explorer.exe und drücken Sie die Eingabetaste. Es öffnet sich Windows Explorer . Klicken Sie nun mit der rechten Maustaste auf Ihr PowerShell-Skript, das Sie ausführen möchten, und wählen Sie "Mit PowerShell ausführen", wodurch es in PowerShell im Administratormodus gestartet wird.

Möglicherweise werden Sie gefragt, ob die Richtlinie ausgeführt werden soll. Geben Sie Y ein und drücken Sie die Eingabetaste. Nun wird das Skript in der PowerShell als Administrator ausgeführt. Wenn es ganz rot ist, bedeutet das, dass Ihre Richtlinie noch nicht in Kraft getreten ist. Versuchen Sie es dann erneut und es sollte funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X