Avvia un processo elevato da PowerShell
PowerShell è una forma avanzata di prompt dei comandi. È esteso con un enorme set di cmdlet pronti per l'uso e offre la possibilità di utilizzare .NET Framework/C# in vari scenari. Oggi ti mostrerò come avviare un processo elevato dal prompt di PowerShell.
In precedenza, ho spiegato come può essere lo stesso fatto da un file batch. Tuttavia, con Windows 10 Creators Update, Microsoft ridurrà l'enfasi sul prompt dei comandi e promuoverà PowerShell ovunque. Vedi questi articoli per riferimento:
- Windows 10 build 14986 sostituisce il prompt dei comandi con PowerShell ovunque
- Aggiungi nuovamente il prompt dei comandi al menu Win+X in Windows 10 Creators Update
- Aggiungi il prompt dei comandi al menu contestuale in Windows 10 Creators Update
- Rimuovi la finestra Apri PowerShell qui dal menu contestuale in Windows 10
Quindi, è una buona idea imparare questo utile trucco che può essere eseguito dalla console di PowerShell e risparmiare tempo.
Avvia un processo elevato da PowerShell
Per questa attività, utilizzeremo il cmdlet Start-Process. Supporta un
numero di opzioni, uno di questi è -Verb. Se specifichi -Verb come "RunAs", il processo che stai per avviare verrà aperto con privilegi elevati.Proviamo ad avviare l'app Blocco note con privilegi elevati.
- Apri PowerShell.
- Digita o copia-incolla il seguente comando:
Avvia-Processo "notepad.exe" -Verb RunAs
- Apparirà un prompt UAC. Confermalo:
- L'app Blocco note verrà aperta con privilegi elevati.
Puoi assicurarti questo usando il Task Manager. Vedi l'articolo: Come verificare se un processo è in esecuzione come amministratore (elevato) in Windows
Nota: se si preme il pulsante "No" al prompt UAC, la console di PowerShell stamperà un messaggio di errore "L'operazione è stata annullata dall'utente.". Questo è previsto.
Suggerimento: puoi eseguire un'app con privilegi elevati direttamente con l'aiuto di PowerShell senza prima aprire la sua console. Ad esempio, puoi creare un collegamento o digitare il seguente comando nella finestra di dialogo Esegui:
powershell.exe -Comando "Avvia-Processo Notepad.exe -Verb RunAs"
Il risultato sarà lo stesso. La finestra di PowerShell lampeggerà per un momento e quindi l'app verrà aperta in alto.
Avvia un processo elevato con argomenti da PowerShell
Se devi passare alcuni argomenti (noti anche come opzioni o parametri) a un processo che avvierai con privilegi elevati da PowerShell, usa l'opzione -Argument del cmdlet Start-Process. L'argomento specificato verrà passato al file eseguibile di destinazione. Qui ci sono esempi modificati con Notepad.exe che ho usato sopra.
Per la console PowerShell, usa il comando seguente:
Start-Process "notepad.exe" -Argomento "C:\My Stuff\my file.txt" -Verb RunAs
Racchiudere i percorsi che hanno spazi tra virgolette. Se devi passare più di più argomenti, separali con virgole e usa ArgumentList:
Start-Process "file.exe" -ArgumentList "argument1, argument2, argument3" -Verb RunAs
Dall'interno di PowerShell, puoi usare il seguente comando:
powershell.exe -Comando "Start-Process 'Notepad.exe' -Argument 'C:\My Stuff\my file.txt' -Verb RunAs"
Ancora un altro esempio:
powershell -Comando "Start-Process powershell.exe -ArgumentList '-ExecutionPolicy Bypass -NoExit -Command \`"Checkpoint-Computer -Descrizione \"RestorePoint1\" -RestorePointType \"MODIFY_SETTINGS\"\`"' -Verbo Correre come"
Vedi l'articolo per maggiori informazioni: Crea un punto di ripristino in Windows 10 con PowerShell
Racchiudere i percorsi con spazi tra virgolette come mostrato sopra.
Questo è tutto.