Eseguire un comando come amministratore usando PowerShell?

Sapete che se siete l'utente amministrativo di un sistema e potete semplicemente cliccare con il tasto destro su uno script batch ed eseguirlo come amministratore senza inserire la password di amministratore?

Mi sto chiedendo come fare questo con uno script PowerShell. Non voglio dover inserire la mia password; voglio solo imitare il metodo Run As Administrator del clic destro.

Tutto quello che ho letto finora richiede di fornire la password di amministratore.

Soluzione

Se la console corrente non è elevata e l'operazione che stai cercando di fare richiede privilegi elevati, allora puoi avviare powershell con l'opzione "Run as administrator".

PS> Start-Process powershell -Verb runAs
Commentari (6)

Potete facilmente aggiungere alcune voci di registro per ottenere un "Esegui come amministratore" menu contestuale per i file .ps1:

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"'

(aggiornato con uno script più semplice da @Shay)

Fondamentalmente in HKCR:\Microsoft.PowershellScript.1\Shell\runas\command imposta il valore predefinito per invocare lo script usando Powershell.

Commentari (6)

Questo comportamento è stato progettato. Ci sono più livelli di sicurezza dal momento che Microsoft non vuole davvero che i file .ps1 siano l'ultimo virus delle e-mail. Alcune persone trovano che questo sia contrario alla nozione stessa di automazione dei compiti, il che è giusto. Il modello di sicurezza di Vista+ è quello di "de-automatizzare" le cose, rendendo così l'utente ok.

Tuttavia, sospetto che se si lancia powershell stesso come elevato, dovrebbe essere in grado di eseguire i file batch senza richiedere nuovamente la password finché non si chiude powershell.

Commentari (0)