2010-02-12 21:46:32 +0000 2010-02-12 21:46:32 +0000
63
63

wie man ein Power-Shell-Skript als Administrator ausführt

Auf meinem Windows 7-Desktop habe ich script.ps1, das Admin-Rechte benötigt (es startet einen Dienst). Ich möchte auf dieses Skript klicken und es mit Admin-Rechten ausführen.

Wie kann ich dies am einfachsten bewerkstelligen?

Antworten (7)

53
53
53
2010-02-13 12:58:54 +0000

Hier ist eine Möglichkeit, dies mit Hilfe eines zusätzlichen Symbols auf Ihrem Desktop zu tun. Wenn Sie nur ein einziges Icon auf Ihrem Desktop haben möchten, könnten Sie das Skript auch von jemand anderem verschieben.

  1. Erstellen Sie eine Verknüpfung zu Ihrem Powershell-Skript auf Ihrem Desktop
  2. Klicken Sie mit der rechten Maustaste auf die Verknüpfung und klicken Sie auf Eigenschaften
  3. Klicken Sie auf die Registerkarte Verknüpfung
  4. Klicken Sie auf Erweitert
  5. Wählen Sie Ausführen als Administrator

Sie können das Skript jetzt erhöht ausführen, indem Sie einfach auf die neue Verknüpfung auf Ihrem Desktop doppelklicken

20
20
20
2013-01-10 17:29:06 +0000

Um auf UAC-fähigen Systemen sicherzustellen, dass ein Skript mit vollen Admin-Rechten ausgeführt wird, fügen Sie diesen Code am Anfang Ihres Skripts ein:

param([switch]$Elevated)

function Test-Admin {
  $currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
  $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}

if ((Test-Admin) -eq $false) {
    if ($elevated) 
    {
        # tried to elevate, did not work, aborting
    } 
    else {
        Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
}

exit
}

'running with full privileges'

Wenn Ihr Skript mit dem Schalter -erhöht ausgeführt wird, versucht es, die Rechte vor der Ausführung zu erhöhen.

13
13
13
2010-11-27 11:48:43 +0000

wenn Sie in der gleichen Machtzentrale sind, könnten Sie dies tun:

Start-Process powershell -verb runas -ArgumentList "-file fullpathofthescript"
4
4
4
2010-02-12 22:02:27 +0000

Da es auf Ihrem Desktop liegt, würde ich sagen, dass es am einfachsten ist, es auf das Elevation-Gadget zu ziehen.

Andernfalls könnten Sie ein separates Skript erstellen, indem Sie den Befehl elevate auf Ihrem ps1-Skript verwenden.

Oder Sie könnten elevate nur auf das Service-Start-Bit anwenden.

1
1
1
2015-07-16 17:57:01 +0000

PowerShell ISE lebt bei %windir%\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe. Sie können mit der rechten Maustaste darauf klicken und “Als Administrator ausführen” wählen und das Skript von dort aus ausführen.

Sie finden es auch unter dem Windows-Logo > Alle Programme > Zubehör > Windows PowerShell und können dasselbe mit diesen Verknüpfungen tun.

0
0
0
2019-07-15 04:56:44 +0000

Wenn Sie eine Option zum Starten eines Powershell-Skripts als Administrator direkt vom Explorer-Kontextmenü aus wünschen, siehe Abschnitt 2 meiner Antwort hier: https://stackoverflow.com/a/57033941/2441655

-1
-1
-1
2017-10-23 20:34:16 +0000

Fügen Sie dies am Anfang des Skripts hinzu:

$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$testadmin = $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
if ($testadmin -eq $false) {
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
exit $LASTEXITCODE
}