Qual é o equivalente do Windows ao comando "whoami" do Unix?

72

Existe um equivalente do Windows ao comando "whoami" do Unix? Se assim for, o que é?

Kip
fonte
2
Sim, existe e é também whoami
DeepSpace101
use o comando “query session” para obter uma lista dos serviços de terminal atualmente conectados ou desconectados, usuários
Martin

Respostas:

73

Desde o Windows 2000, o whoamicomando faz parte da linha de comando padrão (obrigado a pk por esclarecer isso nos comentários!).

Você pode fazer isso: Abra um prompt de comando e digite "set" e pressione enter. Isso mostra variáveis ​​de ambiente ativas. O nome de usuário conectado atual é armazenado na variável env USERNAME e seu domínio é armazenado na variável USERDOMAIN.

Para selecionar as outras respostas, a partir de uma linha de cmd:

echo %USERDOMAIN%\%USERNAME%

você obterá o usuário logado completo no formato domínio \ nome de usuário.

Você pode fazer o mesmo com o Powershell com isso:

write-host $env:userdomain\$env:username
squillman
fonte
11
+1 para o aspecto educacional, e para incluir o domínio, bem como o nome de usuário
tomjedrz
@squillman Como posso fazer isso funcionar ao executar um prompt de comando como usuário do Sytem? Porque neste caso, não há nenhuma variável ambiente como% USERDOMAIN% ou% NOME DE UTILIZADOR%
GianT971
@ GianT971 Você quer dizer LocalSystem? Não existe uma maneira para essa conta, pois ela não está associada a um usuário conectado. Normalmente, essa conta é usada para serviços e, quando um serviço está sendo executado como LocalSystem, assume o contexto de segurança do gerenciador de controle de serviços.
squillman
Está bem. Sim, foi o que eu quis dizer. Talvez com as versões mais recentes do PowerShell seja possível, como ao executar um aplicativo .NET invocando Environment.Username na conta LocalSystem, o resultado é "System". Mas ainda não dei uma boa olhada no PowerShell
GianT971 6/12/12
@ GianT971 Você pode gerar processos cmd ou powershell e executar scripts, mas não terá um shell interativo.
squillman
16

Isso relata quase todas as mesmas informações que todo mundo está dizendo, mas você também pode digitar

SET U

Ele retornará todas as variáveis ​​de ambiente que começam com U.

Como um aparte, o SET L pode ser útil para depurar problemas do servidor de logons.

Dayton Brown
fonte
11
Às vezes, você apenas vê dicas que precisam ser compartilhadas, essas duas são ótimas.
Banheiras
5

ECHO% USERNAME%

ggponti
fonte
5

Da linha de comando? "echo% username%" deve fazê-lo. O usuário conectado é armazenado na variável de ambiente "nome de usuário".

Em uma sessão gráfica, ctrl-alt-del exibirá uma tela com o usuário conectado exibido.

sysadmin1138
fonte
5

Depende do seu sistema operacional específico, mas o comando whoami está disponível como parte do Windows 2000 Resource Kit e das Ferramentas de Suporte do Windows XP SP2 .

RedFilter
fonte
2
+1 Também disponível por padrão no Vista +
Oskar Duveborn
aha, eu pensei que tinha usado whoami no meu laptop em casa recentemente, acho que funcionou porque era vista. aqui no trabalho eu estou em xp
Kip
3

Os itens acima são nativos do sistema operacional e têm melhores respostas, mas, no espírito de perfeição, existe literalmente um whoami.exe nas ferramentas de suporte para 2000 e XP. Com 32 kb, seria fácil implementar a política de grupo, se você quisesse seguir esse comando.

Kara Marfia
fonte
1

No autoexec, ou no prompt do DOS, digite o prompt% USERDOMAIN% \% USERNAME% $ p $ g , e você exibirá quem você está conectado e verá o prompt típico como este: DOMAIM \ nome de usuário C:>

user156428
fonte