【发布时间】:2022-10-19 10:40:32
【问题描述】:
我正在使用桌面应用程序 (Visual Basic) 中的 PowerShell 命令来更改网络适配器设置,使用 DHCP 或静态 IP 配置。该命令有效,但未出现在 Internet 协议 (TCP/IPv4) 设置中,仅通过 cmd 使用 ipconfig 命令显示。 IP not shows in control panel
如果用户重新启动或网络适配器自行重新启动,则会出现问题。它会导致静态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)
更新尝试直接使用命令PowerShell.exe运行,它运行完美。重启后IP不会消失。进程vb net可能有问题吗?
【问题讨论】:
-
VB.NET 和 Powershell(以及任何其他 .NET 语言,例如 C#)在 .NET Framework 中调用完全相同的函数。 .NET Framework 调用与所有其他非 .NET 语言相同的 Windows API 函数。
-
感谢您提供信息,但它与此问题的任何原因都没有太大关系。这都是关于通过 PowerShell 命令配置静态 IP 的。 @伦特
-
在
-Confirm:$false ;之后有一个无与伦比的报价。确保您已按原样粘贴代码,因为拼写错误可能会影响脚本的结果。 -
我已经用我的桌面应用程序更新了完全相同的代码。我的桌面程序中不存在无与伦比的报价,它只是为了更具可读性而存在问题。感谢您的提醒@vonPryz
标签: vb.net powershell ip