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

come eseguire uno script powershell come amministratore

Sul mio Windows 7 Desktop, ho script.ps1, che ha bisogno di privilegi di amministratore (avvia un servizio). Voglio cliccare su questo script ed eseguirlo con privilegi di amministratore.

Qual è il modo più semplice per farlo?

Risposte (7)

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

Ecco un modo per farlo, con l'aiuto di un'icona aggiuntiva sul desktop. Immagino che si potrebbe spostare lo script qualcun altro se si volesse avere solo una singola icona sul desktop.

  1. 1. Creare un collegamento al vostro script Powershell sul vostro desktop
  2. Creare un collegamento al vostro script Powershell sul vostro desktop. 2. Fare clic con il tasto destro del mouse sul collegamento e fare clic su Proprietà
  3. Fare clic sul pulsante destro del mouse sul collegamento e fare clic su Proprietà . 3. Fare clic sulla scheda Shortcut
  4. Fare clic sulla scheda Shortcut
  5. Fare clic su Avanzato
  6. Selezionare Esegui come amministratore

Ora è possibile eseguire lo script elevato facendo doppio clic sul nuovo collegamento sul desktop.

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

Sui sistemi abilitati UAC, per assicurarsi che uno script sia in esecuzione con tutti i privilegi di amministrazione, aggiungere questo codice all'inizio dello script:

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'

quando si esegue lo script con l'interruttore -elevato, si cercherà di elevare i privilegi prima dell'esecuzione.

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

se siete nello stesso powershell potreste fare questo:

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

Dato che è seduto sul vostro desktop, direi che il modo più semplice per farlo è trascinarlo sul gadget elevation gadget .

Altrimenti potreste fare uno script separato usando il comando elevate sul vostro script ps1.

Oppure, potreste applicare elevate solo al bit di avvio del servizio.

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

PowerShell ISE vive a %windir%%system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe. Potete fare clic con il tasto destro del mouse e selezionare “Esegui come amministratore” ed eseguire lo script da lì.

Potete anche trovarlo sotto il logo di Windows > Tutti i programmi > Accessori > Windows PowerShell e fare la stessa cosa con queste scorciatoie.

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

Se si desidera un'opzione per lanciare uno script Powershell come adminstrator, direttamente dal menu contestuale di Explorer, vedere qui la sezione 2 della mia risposta: https://stackoverflow.com/a/57033941/2441655

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

Aggiungere questo all'inizio dello script:

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