Obtendo privilégios de administrador no PowerShell

27

Eu tenho apenas uma conta na minha máquina com Windows Vista e esse usuário tem privilégios administrativos. No entanto, quando tento executar um comando no PowerShell para interromper um determinado processo, sou recebido com a mensagem "Acesso negado". Como me torno o administrador?

Brian
fonte

Respostas:

14

A maneira mais fácil de fazer isso é iniciar o Powershell com tokens de administração. Para fazer isso, clique com o botão direito do mouse em Powershell (ou um atalho para ele) e clique em "executar como administrador". Como alternativa, você pode usar elevate.cmd .

Knox
fonte
25

A maneira do Powershell v2, de acordo com a Microsoft , é clicar com o botão direito do mouse no atalho e escolher Executar como administrador .

E para elevar dentro de uma janela do PowerShell:

start-process powershell verb runAs

Que a partir de um arquivo em lote cmd.exe, atalho ou linha de execução ficaria assim (repetidamente) assim:

powershell "start-process powershell -verb runas"
Nathan Hartley
fonte
10

Isso abre uma nova instância do PowerShell:

function Run-Elevated ($scriptblock)
{
  # TODO: make -NoExit a parameter
  # TODO: just open PS (no -Command parameter) if $scriptblock -eq ''
  $sh = new-object -com 'Shell.Application'
  $sh.ShellExecute('powershell', "-NoExit -Command $scriptblock", '', 'runas')
}

Espero que haja problemas com isso - em particular, você não receberá a saída do seu scriptblock novamente no script de chamada. Por outro lado, ele estará presente na nova instância do PS, para que você possa hackear nela.

user2278
fonte
5

Se quiser sempre executar o PowerShell com privilégios de administrador, clique com o botão direito do mouse no atalho do PowerShell, clique no botão "Avançado ..." na guia "Atalho" e selecione "Executar como administrador".

Ryan Fisher
fonte
0

O caminho fácil...

Veja como configurar um comando fácil para obter privilégios de administrador a qualquer momento, a partir de qualquer sessão do PowerShell!

Etapa 1: abra seu perfil do PowerShell. (Permita que o bloco de notas crie o arquivo se ele estiver ausente.)

notepad "$profile"

Etapa 2: cole o seguinte código em qualquer lugar desse arquivo.

function GoAdmin { start-process powershell verb runAs }

Etapa 3: reinicie o PowerShell. O comando está agora permanentemente disponível.

Etapa 4: sempre que quiser entrar como administrador, basta digitar GoAdmin(e não se preocupe em digitar a caixa correta; as funções do PS não fazem distinção entre maiúsculas e minúsculas). É claro que você pode nomear a função de outra forma Elevateou qualquer outra coisa, mas eu não queria nenhum risco de conflito, então a nomeei de uma frase de duas palavras sem hífens, para garantir que nunca entrará em conflito com os próprios recursos do PowerShell.

Observe que a janela do administrador é aberta em um shell separado. Você pode fechar o shell original ou mantê-lo aberto. Se o seu trabalho de administrador faz algo "grande", como adicionar / modificar variáveis ​​de ambiente, o shell do usuário (não administrador) pode simplesmente digitar refreshenvpara recarregar o ambiente e obter as alterações.

Então, basicamente, GoAdminfaça as coisas de administrador, como instalar pacotes (com https://chocolatey.org/, é claro!), Feche a janela do administrador e execute-o refreshenvno shell do usuário! Voila.

Mitch McMabers
fonte