繁体   English   中英

使用 PowerShell 分配 static IP 地址

[英]Assign a static IP address using PowerShell

我是 PowerShell 的初学者。 我正在尝试获取下面的两行代码,这些代码是我在 PowerShell 5 中运行的另一个答案中找到的。

$netAdapter = Get-WmiObject Win32_NetworkAdapterConfiguration | where {$_.MACAddress -eq '0F:98:90:D6:42:92'}
$netAdapter.EnableStatic("192.168.1.1", "255.255.255.0")

是否需要额外的代码才能正确执行?

我收到错误消息“您不能在空值表达式上调用方法”。 当我尝试使用它时。 我用我的设备和网络的数据替换了 MAC 地址和 IP 地址。 我认为也许第二个命令返回一个值,但如果这是问题,我无法弄清楚数据类型。

过去,我使用 Bootp 进行 IP 地址分配,其中非 PC 设备只有一个 MAC 地址,没有有效的 IP 地址。 Bootp 没有为我的设备显示广播,但我可以在 WireShark 中看到它。

关于您的代码片段,我不能多说,但我个人会尽可能避免通过 Get-WmiObject 进行“转移”。 在这种情况下,这也很容易实现。

这段代码:

$netAdapter = Get-NetAdapter | Where-Object {$_.MacAddress -eq '0F:98:90:D6:42:92'}
New-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $netAdapter.ifIndex -IPAddress 192.168.1.1 -PrefixLength 24

没有 Wmi 是 100% PowerShell 并且应该可以正常工作。 (需要管理员权限,这可能已经是您的代码的问题)。

在给接口设置IP地址之前,必须知道接口的属性。 要了解接口属性,请使用以下命令。

Get-NetIPAddress

它将 output 显示为

接口属性

如果您有多个接口,您将获得接口属性列表。

从属性中,您可以记下接口索引值。 然后您可以使用以下命令设置 IP 地址。

如果您在第一次使用命令时将 IP 地址设置为

New-NetIPAddress -IPAddress 192.168.10.100 -PrefixLength 24 -DefaultGateway 192.168.10.1 -InterfaceIndex 4

要修改现有的 static IP 地址,请使用以下命令

Set-NetIPAddress -IPAddress 192.168.10.100 -PrefixLength 24 -DefaultGateway 192.168.10.1 -InterfaceIndex 4

要设置主要 DNS 和次要 DNS 使用以下命令

Set-DnsClientServerAddress -InterfaceIndex 4 -ServerAddresses ('4.2.2.2','8.8.8.8')

要获取 IP 地址和 DNS 的更新 output,请使用以下命令

Get-DnsClientServerAddress
Get-NetIPAddress

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM