【发布时间】:2010-11-13 06:47:32
【问题描述】:
如何在 PowerShell 中获取 localhost(机器)名称?我正在使用 PowerShell 1.0。
【问题讨论】:
标签: .net powershell
如何在 PowerShell 中获取 localhost(机器)名称?我正在使用 PowerShell 1.0。
【问题讨论】:
标签: .net powershell
您可以只使用 .NET Framework 方法:
[System.Net.Dns]::GetHostName()
还有
$env:COMPUTERNAME
【讨论】:
[System.Net.Dns]::GetHostName()(不截断)优于 $env:COMPUTERNAME(截断)
$env:COMPUTERNAME 在 Windows 10 上运行良好(请注意开头的美元符号)
$env:COMPUTERNAME 不适用于 Linux 和 macOS。但是,[Environment]::MachineName 可以。
长格式:
get-content env:computername
短格式:
gc env:computername
【讨论】:
computername 是 NetBIOS 名称,限制为 15 个字符。
不要忘记所有旧的控制台实用程序都可以在 PowerShell 中正常工作:
PS> hostname
KEITH1
【讨论】:
$name = $(hostname)
以上所有问题都是正确的,但如果您想要主机名和域名,请尝试以下操作:
[System.Net.DNS]::GetHostByName('').HostName
【讨论】:
对@CPU-100 的回答稍作调整,用于本地 FQDN:
[System.Net.DNS]::GetHostByName($Null).HostName
【讨论】:
在 PowerShell Core v6 中(适用于 macOS、Linux 和 Windows):
[Environment]::MachineName
【讨论】:
Powershell 中 bat 文件代码的模拟
命令
wmic path Win32_ComputerSystem get Name
Powershell
Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name
和...
hostname.exe
【讨论】:
hostname 在 Powershell 中也可以正常工作
【讨论】:
对我来说最具描述性的方式是:
[System.Net.DNS]::GetHostByName($env:COMPUTERNAME).HostName
【讨论】:
您可以将值存储为
$name = $(hostname)
我想补充一点,简单地执行$name = hostname也会将PC的本地主机名保存到一个变量中。
【讨论】: