在 PowerShell 中获取本地主机名称

Marion Paul Kenneth Mendoza 2023年1月30日
  1. 在 PowerShell 中使用旧命令获取本地主机名称
  2. 在 PowerShell 中使用环境变量获取 localhost 名称
  3. 在 PowerShell 中使用 .NET Framework 库获取 Localhost 名称
  4. 在 PowerShell 中使用 Windows Management Instrumentation 获取 localhost 名称
在 PowerShell 中获取本地主机名称

本地主机是一个技术术语,我们通常用来定义主机名,它指的是当前用于访问它的设备。因此,会出现我们需要查询本地机器当前名称的情况。

本文将介绍几种使用 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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn