如何在Windows PowerShell中获取当前用户名?


当前回答

[Environment]::UserName只返回用户名。例如,鲍勃 [System.Security.Principal.WindowsIdentity]:: GetCurrent()。Name返回用户名,在适当的地方加上域前缀。例如SOMEWHERENICE \鲍勃

其他回答

有时,Username属性在Win32_ComputerSystem中没有数据,即使有用户登录。对我来说有用的是使用quser并解析输出。这并不完美,但很有效。例如:

$quserdata = @()
$quserdata = quser
$userid = ($quserdata[1] -split ' ')[1]
$userid 

注意:如果以登录用户的身份运行,quser会在输出中添加'>'符号。然后您需要删除该符号,但这主要用于作为系统或其他帐户运行的代码,而不是登录的帐户。

$env:用户名是最简单的方法

在我的例子中,我需要检索用户名以使脚本更改路径,即。c: \ \ %的用户名% \用户。我需要通过更改用户桌面的路径来启动脚本。在上面和其他地方的帮助下,我可以通过使用get-location小程序来做到这一点。

你可能有另一种更好的方法,但这对我来说很管用:

$Path = Get-Location

Set-Location $Path\Desktop

如果你习惯批处理,你可以打电话

$user=$(cmd.exe /c echo %username%)

这基本上窃取了如果你有一个只有“echo %username%”的批处理文件的输出。

我发现最容易使用的:cd $home\Desktop\

会转到当前用户桌面吗

在我的例子中,我需要检索用户名以使脚本更改路径,即。c: \ \ %的用户名%的用户。我需要通过更改用户桌面的路径来启动脚本。在上面和其他地方的帮助下,我可以通过使用get-location小程序来做到这一点。

你可能有另一种更好的方法,但这对我来说很管用:

$Path =获取位置

Set-Location \ $ Path桌面