To gain a better understanding of your network card's properties let
us run a preliminary script to enumerate the connections. In
particular we wish to know the values for NetConnectionStatus (2,4,
or 7). We also need the values for DeviceID.
# PowerShell script to check your active NICs # Author: Guy Thomas # Version
4.5
February 2010 tested on PowerShell v 1.0 and 2.0
Note 1: The key property is NetEnabled. In
the output we are looking for values of 'True'. Also the
NetConnectionStatus of active NICs will be 2 and not 7.
Note 2: PowerShell has no word-wrap, thus we use
the
backtick ` to tell the command to continue on the next line.
Trap: With the backtick there should
be no space after the `.
Note 3: Observe PowerShell's trademark the (|) pipe
symbol, this means that the output of the main command is pumped into
Format-Table. I chose, NetEnabled, NetConnectionStatus, DeviceId
from the dozens of possible
Win32_NetworkAdapter properties of to display.
Note 4: Improvement, we could add a -computerName
parameter, with a value of a computer on your network. For
example: Get-WmiObject -Class Win32_NetworkAdapter -computerName
BIGSERVER.
Preliminaries - Vital for Success. Decide which machine
you are configuring, this script is set for
LocalHost. Important: Your DeviceId is unlikely to be 17, so
please research and amend for your computer.
# PowerShell script to disable a NIC with a DeviceId of 17. # Author: Guy Thomas ## Version
2.3
February 2010 tested on PowerShell v 1.0 and 2.0
Note 1: If the script did not work, then change
DeviceId =17. You could also check which machine you wish to disable.
Consider adjusting the value of
-ComputerName ???
Note 2: To reverse the script and ENABLE a nic the command is $Nic.enable().
Note 3: Check your results by running the
above script.
Guy
Recommends: WMI Monitor and It's Free!
Windows Management Instrumentation (WMI) is one of the hidden
treasures of Microsoft operating systems. Fortunately, Solarwinds
have created a
Free WMI Monitor so that you can discover these gems of performance
information, and thus improve your PowerShell scripts. Take the guess work out of which WMI counters to use when scripting the
operating system, Active Directory or Exchange Server.
Note 1: The filtering is achieved through this
clause: -filter "NetConnectionStatus = 2" Actually, you
could a 'Where' clause thus: Where-Object {$_.NetConnectionStatus -eq '2'}
Note 2: PowerShell has no word-wrap, thus the
backtick ` means continue on the next line. Beware, there should
be no space after the `.
Challenge: Change -computerName LocalHost to the value
of a machine on your network.
Guy Recommends: A Free Trial of the Network Performance Monitor
(NPM)
Solarwinds'
Orion performance monitor
will help you discover what's happening on your network. This
utility will also guide you through troubleshooting; the dashboard will
indicate whether the root cause is a broken link, faulty equipment or
resource overload.
Perhaps the NPM's best feature is the way it suggests solutions to network
problems. Its
second best feature is the ability to monitor the health of individual VMWare
virtual machines. If you are interested in troubleshooting, and creating network maps, then I recommend that you take advantage of Solarwinds' offer.
The additional feature of this script is that refines the search
from the broad 'Win32', to the narrower 'Win32_Network'. The
result is a list of network WMI classes.
# PowerShell example to list every WMI class matching Win32_network # Author: Guy Thomas # Version 1.5
February 2010 tested on PowerShell v 1.0 and 2.0
Note 1: In practical terms, most of the 7
network classes are disappointing. However, the class
Win32_NetworkAdapterConfiguration has the useful property of
DefaultIPGateway and IpAddress.
»
Summary of
Use PowerShell to Enable / Disable a NIC
The key concept is that you need a .disable() method. But first you
need to get the Win32_NetworkAdapter class. I have also included a
separate script so that you can check the status of the NetConnectionStatus
before and after you attempt to enable or disable the NIC.
If you like this page then please share it with your friends
Please email me if you have any example scripts. Also please report any factual mistakes, grammatical errors or broken links, I will be happy to correct the fault.
Windows Management Instrumentation (WMI) is one of the hidden
treasures of Microsoft operating systems.
Fortunately, Solarwinds
have created the
Free WMI Monitor so that you can actually see and understand these gems of
performance information. Take the guess work out of which
WMI counters to use for applications like Microsoft Active Directory,
SQL or Exchange Server.