windows - IPv4 属性 UI 中“使用以下 IP 地址”的 Powershell 等效项是什么?
问题描述
我正在寻找一个禁用 DHCP 并将机器的私有 IP 设置为静态 IP 的 Powershell 命令;基本上,我正在寻找与 UI 中的以下操作等效的 Powershell。
控制面板 -> 网络和共享中心 -> 以太网 -> 属性 -> IPv4 -> 属性 -> 关闭“自动获取 IP 地址”并打开“使用以下 IP 地址” -> 填写 IPv4 地址,默认网关和子网掩码。
以下来自本指南的命令似乎描述了我所追求的,但Remove-NetIPAddress
导致我被踢出服务器并将我锁定在外面。
$IP = "10.10.10.10"
$MaskBits = 24 # This means subnet mask = 255.255.255.0
$Gateway = "10.10.10.1"
$Dns = "10.10.10.100"
$IPType = "IPv4"
# Retrieve the network adapter that you want to configure
$adapter = Get-NetAdapter | ? {$_.Status -eq "up"}
# Remove any existing IP, gateway from our ipv4 adapter
If (($adapter | Get-NetIPConfiguration).IPv4Address.IPAddress) {
$adapter | Remove-NetIPAddress -AddressFamily $IPType -Confirm:$false
}
If (($adapter | Get-NetIPConfiguration).Ipv4DefaultGateway) {
$adapter | Remove-NetRoute -AddressFamily $IPType -Confirm:$false
}
# Configure the IP address and default gateway
$adapter | New-NetIPAddress `
-AddressFamily $IPType `
-IPAddress $IP `
-PrefixLength $MaskBits `
-DefaultGateway $Gateway
只要现有的 IPv4 地址还在,我就无法创建新的 IPv4 地址,但删除现有的地址会破坏与服务器的连接。
解决方案
这是不正确的。您可以在同一接口上设置多个 IP。因此,您只需添加新的New-NetIPAddress
,然后删除前一个。
$currentIP = Get-NetIPAddress | where ipaddress -eq '192.168.43.96'
New-NetIPAddress -InterfaceAlias $currentIP.InterfaceAlias -IPAddress 192.168.43.20 -PrefixLength 24
Remove-NetIPAddress -InterfaceAlias $currentIP.InterfaceAlias -IPAddress $currentIP.IPAddress
DNS 和网关是不同的东西。如果您不需要,请不要更改这些。要避免确认提示,只需添加-Confirm:$false
到Remove-NetIPAddress
命令中。
推荐阅读
- python - 无法使用python操作mysql
- amazon-web-services - 为什么 rds 在 aws 的 3 个子网中
- json - bash使用带有jq的变量在文件json中添加属性
- android - jUnit4 - 为什么测试可挂起函数失败并出现“RuntimeException:... AndroidJUnit4 无法加载”?
- javascript - 如何使用 Brain.js 进行预测?
- angular - 构建工作,但无法运行“ng test”
- c# - 后台工作人员未启动
- c# - Xamarin Forms`ContentView`绑定不起作用
- java - 为什么不在 Android 的控制台上显示 firebase 事件?
- vb.net - 是否存在解析包含在一个父 XML 节点中的所有信息的最佳实践?