Включить / отключить сетевой адаптер через MSFT_NetAdapter

Я пытаюсь отключить / включить сетевой адаптер через MSFT_NetAdapter в ОС Windows 8.

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 Disable / Enable требуется перезагрузка системы после кода.
Как управлять сетевым адаптером в ОС Windows 8?

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

Другие решения


По вопросам рекламы [email protected]