在 PowerShell 中获取本地主机名称
- 在 PowerShell 中使用旧命令获取本地主机名称
- 在 PowerShell 中使用环境变量获取 localhost 名称
- 在 PowerShell 中使用 .NET Framework 库获取 Localhost 名称
- 在 PowerShell 中使用 Windows Management Instrumentation 获取 localhost 名称
本地主机是一个技术术语,我们通常用来定义主机名,它指的是当前用于访问它的设备。因此,会出现我们需要查询本地机器当前名称的情况。
本文将介绍几种使用 Windows PowerShell 获取计算机 localhost 名称的方法。
在 PowerShell 中使用旧命令获取本地主机名称
许多旧的命令提示符 (CMD) 命令在 Windows PowerShell 脚本环境中工作。PowerShell 环境使用别名从旧环境中传递这些命令。
这方面的一个例子是命令 hostname
。运行命令提示符时,命令 hostname
将返回本地计算机的名称。
示例代码:
hostname
输出:
WINDOWS-PC01
在 PowerShell 中使用环境变量获取 localhost 名称
获取本地计算机的 localhost 名称的另一种方法是在 PowerShell 中调用我们的一个环境变量。环境变量,由 Windows PowerShell 中的 Env:
描述,存储操作系统环境和程序。
此信息详细信息包括活动系统路径、Windows 安装目录的位置、操作系统使用的进程数等等。
对于这种特定情况,我们可以使用环境变量 Env:COMPUTERNAME
来调用我们机器的本地主机名。
Get-Content Env:COMPUTERNAME
在上面的示例中,我们使用 Get-Content
cmdlet 来获取环境变量的值。我们可以通过将环境变量转换为 Windows PowerShell 变量来简化此操作。
$Env:COMPUTERNAME
上面的两组代码应该产生相同的输出,这将是你正在使用的当前机器的本地主机名称。
在 PowerShell 中使用 .NET Framework 库获取 Localhost 名称
在 Windows PowerShell 中,.NET Framework 的库包含它自己的一组命令,我们可以在脚本中调用这些命令。此外,.NET Framework 中的几个命令在打印计算机的本地主机名称方面实现了相同的目标。
[System.Net.Dns]::GetHostName()
[Environment]::MachineName
如果 Windows PowerShell 中有可用的本机命令,通常不鼓励在生产环境中使用 .NET 框架库,但我们可以为这个特定用例提供一个例外。
如果你加入了域,你的 DNS 名称将比仅加入本地工作组的 localhost 机器名称长得多。
因此,如果你的 DNS 名称超过 15 个字符,则输出值不会被截断的 [System.Net.Dns]::GetHostName()
优于 $env:COMPUTERNAME
,后者将修剪输出.
在 PowerShell 中使用 Windows Management Instrumentation 获取 localhost 名称
Windows Management Instrumentation 或 WMI 是在基于 Windows 的操作系统上管理数据和操作的基础结构。
WMI 最常用于基于 Windows 的应用程序中,并且在管理脚本中最有用,包括基本功能,例如打印本地计算机的 localhost 名称的值。
Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty Name
Get-WMIObject
cmdlet 包含多个本地计算机信息,例如计算机的制造商、域和型号。此外,仅通过管道将其导出 Name
属性将返回本地计算机的 localhost 名称值。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn