gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:18:20 26 4
gpt4 key购买 nike

我正在尝试通过操作系统 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 中管理网络适配器?

最佳答案

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

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

            //
// 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)
{
}

关于c++ - 通过 MSFT_NetAdapter 启用/禁用网络适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30433505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com