Iniciar um processo elevado do PowerShell
PowerShell é uma forma avançada de prompt de comando. Ele é estendido com um grande conjunto de cmdlets prontos para uso e vem com a capacidade de usar o .NET framework / C # em vários cenários. Hoje, vou mostrar como iniciar um processo elevado do prompt do PowerShell.
Anteriormente, falei sobre como o mesmo pode ser feito a partir de um arquivo em lote. No entanto, com o Windows 10 Creators Update, a Microsoft vai tirar a ênfase do prompt de comando e promover o PowerShell em todos os lugares. Veja estes artigos para referência:
- O Windows 10 build 14986 substitui o Prompt de Comando pelo PowerShell em todos os lugares
- Adicionar Prompt de Comando de volta ao Menu Win + X na Atualização de Criadores do Windows 10
- Adicionar prompt de comando ao menu de contexto na atualização de criadores do Windows 10
- Remova a janela Open PowerShell aqui do Menu de Contexto no Windows 10
Portanto, é uma boa ideia aprender este truque útil que pode ser executado no console do PowerShell e economizar seu tempo.
Iniciar um processo elevado do PowerShell
Para esta tarefa, usaremos o cmdlet Start-Process. Suporta um número de opções, um deles é -Verb. Se você especificar -Verb como "RunAs", o processo que você vai iniciar será aberto elevado.
Vamos tentar iniciar o aplicativo Notepad elevado.
- Open PowerShell.
- Digite ou copie e cole o seguinte comando:
Iniciar-Processo "notepad.exe" -Verb RunAs
- Um prompt do UAC aparecerá. Confirme:
- O aplicativo Notepad será aberto elevado.
Você pode garantir isso usando o Gerenciador de Tarefas. Veja o artigo: Como verificar se um processo está sendo executado como administrador (elevado) no Windows
Observação: se você pressionar o botão "Não" no prompt do UAC, o console do PowerShell imprimirá uma mensagem de erro "A operação foi cancelada pelo usuário.". Isso é esperado.
Dica: você pode executar um aplicativo elevado com a ajuda do PowerShell diretamente, sem abrir seu console primeiro. Por exemplo, você pode criar um atalho ou digitar o seguinte comando na caixa de diálogo Executar:
powershell.exe -Command "Start-Process Notepad.exe -Verb RunAs"
O resultado será o mesmo. A janela do Powershell piscará por um momento e, em seguida, o aplicativo será aberto elevado.
Iniciar um processo elevado com argumentos do PowerShell
Se você precisar passar alguns argumentos (também conhecidos como opções ou parâmetros) para um processo que iniciará elevado do PowerShell, use a opção -Argument do cmdlet Start-Process. O argumento especificado ali será passado para o arquivo executável de destino. Aqui estão exemplos modificados com o Notepad.exe que usei acima.
Para o console do PowerShell, use o seguinte comando:
Start-Process "notepad.exe" -Argumento "C: \ My Stuff \ my file.txt" -Verb RunAs
Coloque os caminhos que têm espaços entre aspas. Se você precisar passar mais do que mais argumentos, separe-os com vírgulas e use ArgumentList:
Start-Process "file.exe" -ArgumentList "argument1, argument2, argument3" -Verb RunAs
De dentro do PowerShell, você pode usar o seguinte comando:
powershell.exe -Command "Start-Process 'Notepad.exe' -Argumento 'C: \ My Stuff \ my file.txt' -Verb RunAs"
Ainda outro exemplo:
powershell -Command "Start-Process powershell.exe -ArgumentList '-ExecutionPolicy Bypass -NoExit -Command \ `" Checkpoint-Computer -Description \ "RestorePoint1 \" -RestorePointType \ "MODIFY_SETTINGS \" \ `" '-Verb Correr como"
Veja o artigo para mais informações: Crie um ponto de restauração no Windows 10 com PowerShell
Coloque os caminhos com espaços entre aspas simples, conforme mostrado acima.
É isso.