当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 PowerShell 获取计算机名称

作者:精品下载站 日期:2024-12-14 03:45:59 浏览:13 分类:玩电脑

如何使用 PowerShell 获取计算机名称


PowerShell 有很多 cmdlet,但奇怪的是并不是一个只返回计算机名的 cmdlet。但这并不意味着我们无法获取设备的名称,实际上有多个选项可以返回计算机名称,即使使用单个命令也是如此。

如果您想知道为什么要查找它,我经常使用计算机名称作为自动脚本的日志文件名的一部分。或者有时您只是想快速查看正在使用哪台机器。

在本文中,我将向您展示从本地计算机和远程计算机获取计算机名称的不同方法。

获取计算机名称

获取当前正在使用的计算机的名称的最简单方法实际上是使用旧命令hostname。该命令通常在命令提示符下使用,但在 PowerShell 中也能完美运行

[玩转系统] 如何使用 PowerShell 获取计算机名称

我们可以简单地将主机名存储在变量中以便稍后在脚本中使用。还可以在其后面通过管道传输其他 cmdlet,例如用于复制到剪贴板的 Clip 或其他内容。

# Store hostname in variable
$hostname = hostname

# Copy hostname to clipboard
hostname | clip

使用环境变量

检索主机名的更 PowerShell 方法是使用环境变量。这是操作系统和其他进程用来存储信息的一组动态变量。我们可以通过使用$Env:驱动器,后跟变量名称来访问存储在环境变量中的信息。

因此,要获取计算机名称,我们可以执行以下操作:

$env:COMPUTERNAME

然而这种方法的问题是它只适用于 Windows 机器。在大多数情况下,这已经足够了,但如果您还需要在 macOS 上运行脚本,那么更好的选择是使用 Environment 类来获取计算机名称。这适用于所有机器:

[Environment]::MachineName

使用通用信息模型 (CIM)

另一种快速可靠的检索设备名称的方法是使用通用信息模型 (CIM)。这是我们之前用来获取计算机信息的旧的、众所周知的 WMI 对象的后继者。

使用 Get-CimInstance 的优点是我们也可以对远程计算机使用此方法。

(Get-CimInstance -ClassName Win32_ComputerSystem).Name

获取远程计算机名称

在某些情况下,您需要获取远程计算机的计算机名称。我们可以使用上面的任何方法,并将它们简单地放置在 invoke-command cmdlet 的脚本块中,如下所示:

Invoke-Command -ComputerName "192.168.1.12", "192.168.1.14" -ScriptBlock { $env:COMPUTERNAME }

但在这种情况下,更好的选择是查看 Get-CimInstance cmdlet。这更快,并且允许您获取多台远程计算机的计算机名称:

Get-CimInstance -ComputerName "192.168.1.12", "192.168.1.14" -ClassName Win32_ComputerSystem| Select PSComputerName,Name

使用解析 DnsName

根据 IP 地址获取计算机名称的另一种方法是使用 Resolve-DnsName cmdlet。此命令将查询 DNS 服务器以解析计算机的 IP 地址。

Resolve-DnsName -Name 192.168.1.12 | Select-Object -ExpandProperty NameHost

总结

查找设备名称的方法有很多,但大多数都不太方便,甚至更慢(例如 Get-ComputerInfo)。在本地计算机上,主机名命令是最容易记住和使用的命令。

如果您需要在脚本中查找名称,那么我建议根据您环境中的操作系统使用环境变量或类。

如果您有任何疑问,请在下面发表评论。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯