Sie kennen das, wenn Sie der administrative Benutzer eines Systems sind und Sie können einfach mit der rechten Maustaste auf, sagen wir, ein Batch-Skript und führen Sie es als Administrator ohne Eingabe des Administrator-Passwort?
Ich frage mich, wie man das mit einem PowerShell-Skript machen kann. Ich möchte mein Kennwort nicht eingeben müssen; ich möchte nur die Methode Ausführen als Administrator mit der rechten Maustaste nachahmen.
Nach allem, was ich bisher gelesen habe, müssen Sie das Administratorkennwort eingeben.
Wenn die aktuelle Konsole nicht erweitert ist und der Vorgang, den Sie durchführen möchten, erweiterte Rechte erfordert, können Sie Powershell mit der Option "Als Administrator ausführen" starten
PS> Start-Process powershell -Verb runAs
Sie können ganz einfach einige Registrierungseinträge hinzufügen, um ein "Als Administrator ausführen" Kontextmenü für .ps1
-Dateien zu erhalten:
New-Item -Path "Registry::HKEY_CLASSES_ROOT\Microsoft.PowershellScript.1\Shell\runas\command" `
-Force -Name '' -Value '"c:\windows\system32\windowspowershell\v1.0\powershell.exe" -noexit "%1"'
(aktualisiert durch ein einfacheres Skript von @Shay)
Setzen Sie grundsätzlich bei "HKCR:\Microsoft.PowershellScript.1\Shell\runas\command" den Standardwert, um das Skript mit Powershell aufzurufen.
Dieses Verhalten ist beabsichtigt. Es gibt mehrere Sicherheitsebenen, da Microsoft nicht wollte, dass .ps1-Dateien der neueste E-Mail-Virus sind. Einige Leute finden, dass dies dem Konzept der Aufgabenautomatisierung zuwiderläuft, was auch richtig ist. Das Sicherheitsmodell von Vista+ besteht darin, Dinge zu "de-automatisieren", so dass der Benutzer sie in Ordnung bringen muss.
Ich vermute jedoch, wenn Sie die Powershell selbst als erweitertes Programm starten, sollte sie in der Lage sein, Batchdateien auszuführen, ohne das Kennwort erneut anzufordern, bis Sie die Powershell schließen.