通过PowerShell命令设置静态IP未完全工作



我正在桌面应用程序(Visual Basic(中使用PowerShell命令,使用DHCP或静态IP配置更改网络适配器设置。该命令有效,但没有出现在Internet协议(TCP/IPv4(设置中,仅通过cmd与ipconfig命令一起显示。控制面板中未显示IP

如果用户重新启动或网络适配器自行重新启动,问题就会出现。这将导致静态IP消失。所以用户必须再次将网络更改为静态IP配置。

更新在我的PowerShell命令下,我首先设置DHCP,以防用户意外连接到具有DHCP配置的网络。

Dim p As Process = New Process()
p.StartInfo.FileName = "PowerShell.exe"
p.StartInfo.Arguments = "netsh wlan disconnect ;" & " Get-NetIPInterface -InterfaceAlias """ & Adapter & """ -AddressFamily IPv4 | Remove-NetRoute -AddressFamily IPv4 -Confirm:$false " + ";" + " Get-NetIPInterface -InterfaceAlias """ & Adapter & """ -AddressFamily IPv4 | Set-NetIPInterface -Dhcp Enabled " + ";" + " Get-NetIPInterface -InterfaceAlias """ & Adapter & """ -AddressFamily IPv4 | Set-DnsClientServerAddress -ResetServerAddresses ; " & "New-NetIPAddress -InterfaceAlias """ & Adapter & """ -AddressFamily IPv4 -IPAddress " & IP & " -PrefixLength 24 -DefaultGateway " & Gateway & " ; Set-DnsClientServerAddress -InterfaceAlias """ & Adapter & """ -ServerAddresses " & DNS1 & "," & DNS2
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
p.StartInfo.UseShellExecute = False
p.StartInfo.CreateNoWindow = True
p.StartInfo.RedirectStandardError = True
p.Start()
p.WaitForExit()

此处询问的问题相同(https://superuser.com/questions/1683252/setting-static-ip-via-powershell-doesnt-work)

UPDATE尝试直接使用命令PowerShell.exe运行,它可以完美地工作。IP不会在重新启动后消失。处理vb网可能有问题吗?

我发现,当使用命令New-NetIPAddress时,无法在断开连接的NIC上正确设置静态IP,一旦机器重新启动或NIC重新启用,就会导致静态IP消失。参考

相反,请使用netsh命令正确设置静态IP。netsh处理断开的NIC

相关内容

最新更新