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

jak uruchomić skrypt powershell jako administrator

Na moim Pulpicie Windows 7 mam skrypt.ps1, który potrzebuje uprawnień administratora (uruchamia usługę). Chcę kliknąć na ten skrypt i uruchomić go z uprawnieniami administratora.

Jaki jest najprostszy sposób, aby to zrobić?

Odpowiedzi (7)

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

Oto jeden ze sposobów, z pomocą dodatkowej ikony na pulpicie. Zgaduję, że mógłbyś przenieść skrypt do kogoś innego, gdybyś chciał mieć tylko jedną ikonę na swoim pulpicie.

  1. Stwórz skrót do skryptu Powershell na swoim pulpicie
  2. Kliknij prawym przyciskiem myszy na skrót i kliknij Właściwości
  3. Kliknij Skrót zakładkę
  4. Kliknij Zaawansowane
  5. Wybierz Uruchomienie jako Administrator

Teraz możesz uruchomić skrypt podwyższony, klikając dwukrotnie na nowy skrót na pulpicie.

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

W systemach z obsługą UAC, aby upewnić się, że skrypt działa z pełnymi uprawnieniami administratora, dodaj ten kod na początku swojego skryptu:

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'

podczas uruchamiania skryptu z przełącznikiem -levated, będzie on próbował podnieść uprawnienia przed uruchomieniem.

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

jeśli jesteś w tej samej mocy możesz to zrobić:

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

Skoro siedzi on na twoim pulpicie, powiedziałbym, że najłatwiejszym sposobem jest przeciągnięcie go na gadżet wysokościowy .

W przeciwnym razie mógłbyś zrobić osobny skrypt używając komendy elevate na twoim skrypcie ps1.

Albo mógłbyś zastosować elevate tylko do bitu uruchamiania usługi.

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

PowerShell ISE żyje w systemie %windir%32 OknaPowerShellv1.0 PowerShell. exe. Możesz kliknąć prawym przyciskiem myszy i wybrać “Uruchom jako administrator”, a następnie uruchomić skrypt.

Znajdziesz go również pod Logo Windows \u00261 Wszystkie programy \u00261 Akcesoria \u00261 Windows PowerShell i zrobić to samo z tymi skrótami.

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

Jeśli chcesz mieć możliwość uruchomienia skryptu Powershell jako adminstrator, bezpośrednio z menu kontekstowego Explorera, zobacz sekcję 2 mojej odpowiedzi tutaj: https://stackoverflow.com/a/57033941/2441655

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

Dodaj to do początku skryptu:

$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
}