通过MSFT_NetAdapter启用/禁用网络适配器

3

我正在尝试通过OS Windows 8中的MSFT_NetAdapter禁用/启用网络适配器。

strComputer = "."

Set objWMIService = GetObject("winmgmts:{impersonationLevel=Delegate," _
        & "authenticationLevel=pktPrivacy}\root\standardcimv2")

Set colSettings = objWMIService.ExecQuery("Select * from MSFT_NetAdapter")

For Each objOperatingSystem in colSettings 
    Wscript.Echo _ 
    "DeviceID: " & objOperatingSystem.DeviceID & vbCrLf & _
    "Name: " & objOperatingSystem.Name
objOperatingSystem.Disable

Next
例如仅使用禁用。MSFT_NetAdapter返回“DeviceID”或“Name”,当您调用objOperatingSystem.Disable方法时,会出现错误0x80041003“当前用户无权执行该操作”。 我尝试使用以下代码:
strComputer = "."

Set objWMIService = GetObject("winmgmts:{impersonationLevel=Delegate," _
        & "authenticationLevel=pktPrivacy}\root\cimv2")

Set colSettings = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter where PhysicalAdapter = true")

For Each objOperatingSystem in colSettings 
    Wscript.Echo _ 
    "DeviceID: " & objOperatingSystem.DeviceID & vbCrLf & _
    "Name: " & objOperatingSystem.Name
    objOperatingSystem.Disable
Next

这段代码在Windows 7上运行良好。在代码执行后,网络适配器会立即切换。但在Windows 8操作系统中,禁用/启用需要在代码执行后进行系统重启。

如何在Windows 8操作系统中管理网络适配器?

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
3

您需要以管理员权限运行。如果您的应用程序将由没有管理员权限的用户运行,则可以安装一个服务,您的应用程序与该服务通信。

此代码禁用所有网络适配器。

            //
            //  In Windows Vista this can be accomplished through a simple WMI query.
            //
            try
            {
                using (var query = new ManagementObjectSearcher("select * from Win32_NetworkAdapter where NetConnectionStatus = 2"))
                {
                    using (var devices = query.Get())
                    {
                        foreach (ManagementObject device in devices)
                        {
                            try
                            {
                                device.InvokeMethod("Disable", null);
                            }
                            catch (Exception ex)
                            {
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,