Sudo !! equivalente no PowerShell

13

"Sudo !!" chama o comando executado anteriormente com privilégios de administrador no shell * nix. Existe um equivalente no PowerShell?

BlueGene
fonte

Respostas:

13

$^ é uma variável que se expande para o último comando do PowerShell executado.

Você pode executar um comando como outro usuário usando runas, para que o seguinte funcione:

runas /user:domain\administrator $^

Para encurtar um pouco, você pode fazer alguma mágica com aliases. Dê uma olhada neste artigo da Technet para obter mais informações.

EDIT: Uma ressalva - $^apenas executa o primeiro comando em um pipeline ou linha de multi-comando. Se você precisar refazer um comando inteiro Invoke-Historyrepleto de pipes ou ponto e vírgula, use-o (o padrão é o último comando completo na sua totalidade).

Hyppy
fonte
3
Na verdade, $^é o primeiro token do comando anterior. Se eu fornecer um script com ponto, . ./foo.ps1então $^é .. Isso também significa que os argumentos não estão contidos. Fazer qualquer coisa que exceda um único token não funcionará dessa maneira.
Joey
ok, ele pede senha depois disso? Estou tentando evitar a incorporação de senha de texto sem formatação no meu script.
Senior Systems Engineer
Sim. A menos que você execute o script como administrador, precisará fornecer credenciais para fazer qualquer coisa que exija privilégios de administrador. Você pode querer olhar para algo como Kixtart tokenizar uma senha embutida
Hyppy
0

Eu sempre pensei no JEA (Just Enough Administration) como uma tentativa de aproximar algumas das funcionalidades do sudo. Você pode ler sobre isso aqui:

https://docs.microsoft.com/en-us/powershell/jea/overview

A diferença é que ele usa o sistema de comunicação remota PS em vez de aplicar à máquina local. Essa pode ser uma diferença bastante crítica, o suficiente para afastá-la do sudo.

Elevar para dar conta do Controle de Conta de Usuário, usando runas ou outra coisa, não se encaixa muito bem para mim. É mais como um paralelo de su -.

Chris Dent
fonte
1
We're sorry, the page you requested cannot be found.. Parece estar aqui agora.
GnP 27/07