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

[玩转系统] 如何使用 PowerShell 获取 IP 地址

作者:精品下载站 日期:2024-12-14 13:06:43 浏览:16 分类:玩电脑

如何使用 PowerShell 获取 IP 地址


IT 管理员可以使用 PowerShell 和命令行做很多事情;使用 Windows 网络就是其中一种方法。在本教程中,您将学习如何使用 PowerShell 通过 Get-NetIPAddress cmdlet 和 WMI 从 Windows 计算机上的网络适配器获取 IP 地址。

先决条件

本教程假设您使用的是安装了 Windows PowerShell v5.1 的 Windows 10 或更高版本的计算机。还假设您处于 Active Directory 环境中。如果没有,请务必了解 New-CimSession cmdlet 上的 Credential 属性

使用 Get-NetIPAddress

PowerShell 有多种用于处理网络连接的 cmdlet,例如 Get-NetAdapterGet-NetAdapterBinding,甚至还有一个专门用于查找名为 Get-NetIPAddress 的 IP 地址。如果您想使用 PowerShell 在简单的脚本中获取 IP 地址,请务必使用这些 cmdlet。

保持简单。如果 PowerShell 提供了一种更简单的方法来做某事,那就去做吧!

例如,要查找本地计算机上所有网络适配器上的 IPv4 地址,请运行一行。

Get-NetIPAddress -AddressFamily IPV4

[玩转系统] 如何使用 PowerShell 获取 IP 地址

上面的输出引用了特定的网络适配器(例如以太网适配器),并且仅返回 IP 地址。

[玩转系统] 如何使用 PowerShell 获取 IP 地址

你完成了!简单地使用 PowerShell 获取 IP 地址是一个简单的过程,至少比使用其他方式简单得多。

如果您不喜欢 PowerShell,您还可以使用 ipconfig 命令获取 IP 地址。有关 ipconfig 的更多信息,请参阅您需要了解的 Ipconfig 命令。

为什么使用 CIM/WMI?

当您运行 Get-NetIPAddress cmdlet 时,PowerShell 实际上正在查询 WMI 以检索该信息。为什么了解这一点很重要?因为你可以自己直接查询WMI。但是,当您可以使用单个命令时,为什么还要使用 WMI?

使用 WMI 而不是像 Get-NetIPAddress 这样的单个命令的最常见原因之一是当您已经在查询 WMI 时。 WMI 包含大量系统信息,在构建用于库存目的的脚本时会派上用场。

当使用 PowerShell 与 WMI 通信时,您可以创建一个 CIM 会话,就像 PSRemoting 会话一样。使用会话是对计算机进行一次身份验证并重复使用该连接的有效方法。

当您将此任务构建为较大脚本的一部分时,请使用 CIM 获取 IP 地址。

在没有会话的情况下查询 CIM

当您使用 CIM 构建 PowerShell 脚本来查询各种信息时,您应该使用可重用的 CIM 会话。重用单个会话不仅可以加快脚本速度,还可以减少代码重复。

例如,也许您想查找远程 Windows 计算机正在运行的操作系统。 CIM 将操作系统名称保存在 Win32_OperatingSystem 类内名为 Caption 的属性中。要获取此信息,您可以使用下面的 Get-CimInstance cmdlet,指定计算机名称 (REMOTECOMPUTER)、CIM 类 (Win32_OperatingSystem ),并仅引用对象的 Caption 属性。

(Get-CimInstance -ComputerName REMOTECOMPUTER -ClassName Win32_OperatingSystem).Caption

当您运行Get-CimInstance时,PowerShell必须找到远程计算机,将登录凭据传递给它,并最后查询CIM以获取您需要的信息。在没有会话的情况下运行 Get-CimInstance 会产生大量开销。

如果您正在构建服务器清单脚本并且还想查找有关存储、内存、网络等的信息,该怎么办?在这种情况下,您将有很多 Get-CimInstance 命令,如下所示。

Get-CimInstance -ComputerName REMOTECOMPUTER -ClassName Win32_LogicalDisk
Get-CimInstance -ComputerName REMOTECOMPUTER -ClassName Win32_OperatingSystem
Get-CimInstance -ComputerName REMOTECOMPUTER -ClassName Win32_PhysicalMemory
Get-CimInstance -ComputerName REMOTECOMPUTER -ClassName Win32_NetworkAdapter

在上面的代码片段中,您的脚本将连接到 REMOTECOMPUTER 四次,如果计算机名称发生变化怎么办?您将必须查找/替换该计算机名称,这在编码时绝不是一个好兆头。

创建 CIM 会话

您应该使用 New-CimSession cmdlet 和重用

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

取消回复欢迎 发表评论:

关灯