How to Dis/Enable Network Adapter?

G

Guest

Hi all,
i would like now to disable and enable network adapter programmatically with
c#. I have searched but found nothing useful. There's no topic about this
problem. Has someone done with this problem?
All help will be appreciated.
rongchaua.
 
I

Ignacio Machin \( .NET/ C# MVP \)

Hi,

There is nothing for this in the framework, you would have to use WMI
 
W

Willy Denoyette [MVP]

"Ignacio Machin ( .NET/ C# MVP )" <ignacio.machin AT dot.state.fl.us> wrote
in message | Hi,
|
| There is nothing for this in the framework, you would have to use WMI


Which is exactly what's exposed by System.Management or is this not part of
the framework.

Willy.
 
G

Guest

Hi all,
today when i look again at this link
http://msdn.microsoft.com/library/d...ry/en-us/wmisdk/wmi/wmi_tasks__networking.asp

I see that we can enable or disable NIC
****
Use the Win32_NetworkAdapter class and the Disable or Enable methods.
****

But when I use this method to disable the network adapter I receive a error
message in debug window
****
ManagementException was unhandled
This methode was not implemented
*****

Hier is my source code
***********
ManagementClass mc = new ManagementClass("Win32_NetworkAdapter");
ManagementObjectCollection moc = mc.GetInstances();


foreach(ManagementObject mo in moc)
{
ManagementBaseObject mbo = null;
mbo = mo.GetMethodParameters("Disable"); //the error comes here...
}
*************

What should I do now to use this method? Should I update the new version of
..net framework? I'm using now VS 2005 with .net 2.0
All help will be appreciated.
rca.
 
W

Willy Denoyette [MVP]

The class provides a disable/enable method but they aren't implemented.
It's up to the device driver to accept/implement the commands and currently
none of the network driver implements these methods, that's why the methods
aren't implemented at the WMI provider either.
One option is to get a copy of Devcon.exe from the MS download site, but
keep in mind that this tool is not distributable and should only be used for
diagnostic purposes.
Note that I fail to see why you need to disable a NIC, maybe there is
another way to achieve what you are after.


Willy.


| Hi all,
| today when i look again at this link
|
http://msdn.microsoft.com/library/d...ry/en-us/wmisdk/wmi/wmi_tasks__networking.asp
|
| I see that we can enable or disable NIC
| ****
| Use the Win32_NetworkAdapter class and the Disable or Enable methods.
| ****
|
| But when I use this method to disable the network adapter I receive a
error
| message in debug window
| ****
| ManagementException was unhandled
| This methode was not implemented
| *****
|
| Hier is my source code
| ***********
| ManagementClass mc = new ManagementClass("Win32_NetworkAdapter");
| ManagementObjectCollection moc = mc.GetInstances();
|
|
| foreach(ManagementObject mo in moc)
| {
| ManagementBaseObject mbo = null;
| mbo = mo.GetMethodParameters("Disable"); //the error comes here...
| }
| *************
|
| What should I do now to use this method? Should I update the new version
of
| .net framework? I'm using now VS 2005 with .net 2.0
| All help will be appreciated.
| rca.
|
|
| "rongchaua" wrote:
|
| > Hi,
| > WMI can not disable or enable NIC.
| >
http://msdn.microsoft.com/library/d...ry/en-us/wmisdk/wmi/wmi_tasks__networking.asp
| > But I found another.
| > http://channel9.msdn.com/ShowPost.aspx?PostID=158556
| > Regards.
| > rongchaua.
| >
| > "Ignacio Machin ( .NET/ C# MVP )" wrote:
| >
| > > Hi
| > > | > >
| > > >
| > > > Which is exactly what's exposed by System.Management or is this not
part
| > > > of
| > > > the framework.
| > >
| > > :) , good point.
| > >
| > >
| > >
| > > --
| > > --
| > > Ignacio Machin,
| > > ignacio.machin AT dot.state.fl.us
| > > Florida Department Of Transportation
| > >
| > >
| > >
 
S

S. Lorétan

Hi,

You can disable a network adapter with this shell command:
netsh interface set interface "Network Adapter name" DISABLED

And enable it with
netsh interface set interface "Network Adapter name" ENABLED

This works only under Windows 2003 Server. The problem with Windows 2000/XP
is because the Netshell tools treats network adapters as dedicated
interfaces, and dedicated interfaces can't be enabled or disabled. There is
a workaround if you want to prevent traffic from being passed by the network
adapter. You can use netsh to set a different (private) IP address, which
virtually disable the network adapter.
netsh interface ip set address "Network Adapter name" static (ip address)
(subnet mask) (default gateway) (metric)

And to virtually enable it, you can simply reset its IP with the DHCP
netsh interface ip set address "Network Adapter name" source=dhcp

I hope this helps. Sorry for my english.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top