489 votes

Comment obtenir le nom d'utilisateur actuel dans Windows PowerShell ?

Comment obtenir le nom d'utilisateur actuel dans Windows PowerShell ?

569voto

Thomas Bratt Points 10738

Je l'ai trouvé :

$env:UserName

Il y a aussi :

$env:UserDomain
$env:ComputerName

0 votes

La réponse consiste simplement à utiliser une méthode statique .NET à partir de Powershell, ce qui pourrait être une technique utile à utiliser ailleurs.

1 votes

Pas l'utilisateur actuellement connecté mais simplement des variables d'environnement ! Ne répondez pas à la question.

277voto

Mark Seemann Points 102767

Sous Windows, vous pouvez :

[System.Security.Principal.WindowsIdentity]::GetCurrent().Name

30 votes

C'est la réponse la plus sûre car $env:USERNAME peut être modifié par l'utilisateur, mais il ne sera pas trompé en faisant cela.

11 votes

@KevinPanko C'est vrai, mais au moment où vous ne pouvez pas faire confiance à votre utilisateur, il y a d'autres questions, plus philosophiques, qui doivent être posées ;-)

9 votes

Cette méthode comprend le nom de domaine et le nom d'utilisateur. C'est un avantage certain si vous avez plusieurs domaines en jeu.

105voto

Eoin Points 551

$env:username est le moyen le plus simple

0 votes

Vous pouvez l'attribuer de cette manière, et créer des répertoires et autres.

58voto

galaktor Points 1031

J'aimerais ajouter à la liste whoami qui est en fait un alias pour la commande %USERDOMAIN%\%USERNAME% comme proposé dans d'autres réponses.

Write-Host "current user:"
Write-Host $(whoami)

0 votes

Cela fonctionne pour moi sur PS version 2. Vous voulez dire qu'il a été abandonné sur la PS3 ? C:\>powershell Windows PowerShell Copyright (C) 2009 Microsoft Corporation. Tous droits réservés. PS C:\> whoami mondomaine \myusername

4 votes

$env:USERNAME peut être modifié par l'utilisateur, mais il ne sera pas trompé en faisant cela.

6 votes

Whoami gagne pour l'utilisation interactive. Il est suffisamment court pour que je puisse me rappeler comment le taper sans consulter SO :-)

39voto

WaffleSouffle Points 1088

[Environment]::UserName renvoie uniquement le nom de l'utilisateur. Par exemple. bob [System.Security.Principal.WindowsIdentity]::GetCurrent().Name renvoie le nom de l'utilisateur, préfixé par son domaine le cas échéant. Ex. SOMEWHERENICE \bob

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X