如何在PowerShell中获取localhost名称?

Geo*_*ge2 170 .net powershell

如何在PowerShell中获取localhost(机器)名称?我正在使用PowerShell 1.0.

Str*_*lok 244

您只需使用.NET Framework方法:

[System.Net.Dns]::GetHostName()

$env:COMPUTERNAME

  • 注意:如果您的DNS名称超过15个字符,`[System.Net.Dns] :: GetHostName()`(不截断)优于`$ env:COMPUTERNAME`(truncates) (5认同)
  • 太优雅了.我<3 Powershell. (2认同)
  • @mathisfun`$ env:COMPUTERNAME`在Windows 10上正常工作(请注意开头的美元符号) (2认同)
  • `$env:COMPUTERNAME` 不适用于 Linux 和 macOS。然而,`[Environment]::MachineName` 确实如此。 (2认同)

小智 60

不要忘记所有旧的控制台实用程序在PowerShell中都可以正常工作:

PS> hostname
KEITH1
Run Code Online (Sandbox Code Playgroud)

  • 您可以按如下方式存储该值:“$name = $(hostname)” (2认同)

RaY*_*ell 37

长表:

get-content env:computername
Run Code Online (Sandbox Code Playgroud)

简写:

gc env:computername
Run Code Online (Sandbox Code Playgroud)

  • supershort:$ env:COMPUTERNAME (17认同)

gre*_*pit 10

以上所有问题都是正确的,但如果您想要主机名和域名,请尝试以下方法:

 [System.Net.DNS]::GetHostByName('').HostName
Run Code Online (Sandbox Code Playgroud)


Gar*_*ury 6

对于本地 FQDN,对 @CPU-100 的回答稍作调整:

[System.Net.DNS]::GetHostByName($Null).HostName


fel*_*ker 6

在 PowerShell Core v6(适用于 macOS、Linux 和 Windows)中:

[Environment]::MachineName
Run Code Online (Sandbox Code Playgroud)


小智 5

hostname在 Powershell 中也能正常工作