[environment] 和 $env 在 powershell 中有何不同?

How are [environment] and $env different in powershell?

在 Windows 阈值测试版上,我可以 运行:

$env:username

并查看用户名。我也可以 运行:

[environment]::username

并查看用户名。

不过我可以 运行

$env:computername

要查看主机名,尝试 运行:

[environment]::computername

没有显示任何结果。

为什么 [environment]::computername 不起作用? $env和[环境]有什么区别?

尝试使用

[environment]::machinename

$env直接绑定环境变量

[environment] 是一个 .net class

当您使用 [environment]::computername 时,您实际上是在 Powershell 中使用 .NET 代码。因此,阅读 Environment Class 的文档表明您应该改用 [environment]::machinename

$env 是环境 PSDrive.

的快捷方式

我不知道为什么微软在这里使用两个不同的名字。

顺便说一句:有很多方法可以获取计算机名,您也可以使用 wmi:Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name