【问题标题】:Toggle Mobile Broadband network connection切换移动宽带网络连接
【发布时间】:2015-09-16 22:58:34
【问题描述】:

我正在寻找一种使用 PowerShell 在 Windows 8.1 中打开和关闭移动宽带连接的方法。如果没有纯 PowerShell cmdlet,本机 cmd.exe 方式也可能就足够了。目前,我知道如何禁用和启用适配器本身,但不知道连接。万一很重要:PC内置3G模块。

我尝试比较了适配器在连接和断开状态下的属性:

Get-NetAdapter -Name "Mobile broadband" | select -Property * | Out-File connected.txt
# manually disconnected
Get-NetAdapter -Name "Mobile broadband" | select -Property * | Out-File disconnected.txt
Compare-Object $(Get-Content connected.txt) $(Get-Content disconnected.txt)

并得到以下结果:

  InputObject                                                 SideIndicator
-----------                                                 -------------
Status                                           : Disco... =>
LinkSpeed                                        : 0 bps    =>
MediaConnectionState                             : Disco... =>
ifOperStatus                                     : Down     =>
Speed                                            : 0        =>
InterfaceOperationalStatus                       : 2        =>
MediaConnectState                                : 2        =>
OperationalStatusDownMediaDisconnected           : True     =>
ReceiveLinkSpeed                                 : 0        =>
TransmitLinkSpeed                                : 0        =>
Status                                           : Up       <=
LinkSpeed                                        : 21.6 ... <=
MediaConnectionState                             : Conne... <=
ifOperStatus                                     : Up       <=
Speed                                            : 21600000 <=
InterfaceOperationalStatus                       : 1        <=
MediaConnectState                                : 1        <=
OperationalStatusDownMediaDisconnected           : False    <=
ReceiveLinkSpeed                                 : 5760000  <=
TransmitLinkSpeed                                : 21600000 <=

但是,我似乎无法更改任何这些选项,因为它们对我来说是只读的:

Get-NetAdapter -Name "Mobile broadband" | Get-Member -Name Status,MediaConnectionState,ifOperStatus,InterfaceOperationalStatus,MediaConnectState,OperationalStatusDownMediaDisconnected


   TypeName: Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter

Name                                   MemberType     Definition                                                       
----                                   ----------     ----------                                                       
Status                                 ScriptProperty System.Object Status {get=$NetAdapter = $this;...                
MediaConnectionState                   ScriptProperty System.Object MediaConnectionState {get=[Microsoft.PowerShell....
ifOperStatus                           ScriptProperty System.Object ifOperStatus {get=[Microsoft.PowerShell.Cmdletiz...
InterfaceOperationalStatus             Property       uint32 InterfaceOperationalStatus {get;}                         
MediaConnectState                      Property       uint32 MediaConnectState {get;}                                  
OperationalStatusDownMediaDisconnected Property       bool OperationalStatusDownMediaDisconnected {get;}               

我也无法使用 Enable-NetAdapter cmdlet 更改连接状态。

【问题讨论】:

  • 我认为您应该在适配器级别工作,至少尝试在 GUI 中禁用连接并检查适配器的 WMI 对象是否将 NetEnabled 设置为 false。如果是,这些操作是完全相等的。
  • @Vesper 对不起,我不明白你的意思。我在描述中添加了额外的信息,也许会有用。
  • 嗯,您的 3G 与系统的连接类型是什么?它是一种调制解调器/VPN吗?我的意思是,3G 上的“网络连接”窗口中显示的是什么类型的连接?如果是拨号或VPN,请查看Get-VPNConnection 了解控制连接的方法。
  • @Vesper 这似乎不是 VPN 连接,因为 Get-VPNConnection 无法通过名称或 * 通配符找到它。我也从未输入任何凭据。在“网络连接”中,仅显示“华为移动宽带模块”,并没有额外说明连接类型。此外,在 Windows 8 GUI 的“网络”部分中,有一个“移动宽带”子部分和一个简单的滑块来切换它 - 与飞行模式和 Wi-Fi 的滑块相同。额外注意的是,新安装的 Windows 8.1(通用,不是特定于设备)检测到连接,而我无需安装任何额外的驱动程序。
  • 您找到解决方案了吗?

标签: windows powershell wireless


【解决方案1】:

使用 .Net 框架连接到任何类型的网络cannot。但是要连接到移动连接,您可以在命令提示符上键入NETSH MBN CONNECT INTERFACE=&lt;ADAPTER_NAME&gt; CONNMODE=NAME NAME=&lt;CONNECTION_PROFILE_NAME&gt; 来完成此操作。在您的情况下,ADAPTER_NAME 将是“移动宽带”,您可以使用以下 PowerShell 命令找到 CONNECTION_PROFILE_NAME 的值:Get-NetConnectionProfile -InterfaceAlias "Mobile broadband" | Select-Object Name

要断开网络连接,请使用NETSH MBN DISCONNECT &lt;ADAPTER_NAME&gt;

【讨论】:

  • 在我的系统上,Get-NetConnectionProfile 不返回任何移动连接数据。 Get-NetConnectionProfile -InterfaceAlias "Mobiel 5" Get-NetConnectionProfile:没有找到属性“InterfaceAlias”等于“Mobiel 5”的 MSFT_NetConnectionProfile 对象。验证属性的值并重试。名称正确,netsh mbn 命令有效。
  • Get-NetConnectionProfile 仅显示有关您实际连接的连接的信息,即它不列出断开的 WiFi/移动连接。所以尝试连接到“Mobiel 5”,看看它是否有效。
  • 我的“移动”设备已连接,但我必须断开 wifi 连接才能让 Get-NetConnectionProfile 列出移动连接的属性。这是合乎逻辑的,因为 WIFI 的优先级高于移动连接。谢谢@Cool Charac
猜你喜欢
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-05
  • 1970-01-01
  • 1970-01-01
  • 2013-12-31
  • 2012-07-25
相关资源
最近更新 更多