***************************************************************************
$network = get-wmiobject
win32_networkadapter | where-object {$_.netconnectionID -like
"*IBM USB*"}
$network.disable() ##use
enable() to enable card.
***************************************************************************
How did I find above script.
Above script is not much great, anyone can find it, but here I am posting it for beginners, who have some foundation knowledge but don't know where to begin, so here are some of the pointers. I even posted how I went wrong and how I corrected myself.
Here i go.
Get-WmiObject
Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes
I usually use Get-WmiObject to query hardware information, after putting series of below wrong
command,
c:\get-wmiobject | where-object
{$_.name -like "*network*"}
c:\get-wmiobject list |
where-object {$_.name -like "*network*"}
Got my mistake where I am wrong and ran below command. which gave me huge list of classes (objects)
c:\>get-wmiobject –list
c:\>get-wmiobject -list | where-object {$_.name -like "*network*"} #To find only network related classes/objects
Tried first object,
win32_networkadapter (I thought this will be the same object as I want, where I can find network adapter information) and
ran
c:\>get-wmiobject win32_networkadapter
Ran series of command to find network adapter name “IBM USB”
but no success.
c:\>get-wmiobject
win32_networkadapter | ft –auto
c:\>get-wmiobject win32_networkadapter |
where-object {$_.name -like "*IBM USB*"} # * used as a wild card
Ran get-member to list properties and method for win32_networkadapter class.
c:\>get-wmiobject win32_networkadapter | get-member
But still I was not sure where can I find property containing “IBM USB” and
tried some of the properties
c:\>get-wmiobject
win32_networkadapter | ft name
c:\>get-wmiobject
win32_networkadapter | ft systemname
I got an idea, and exported all the properties in csv file, after lots of spelling mistakes and wrong commands I successfully captured data.
c:\>get-wmiobject
win32_networkadapter | ft * | exprot-csv -path test.csv # Spelling mistakes (exprot-csv)
c:\>get-wmiobject
win32_networkadapter | ft * | export-csv -path test.csv # Ft command not needed here
c:\>get-wmiobject
win32_networkadapter | export-csv -path test.csv #success
I opened test.csv file and found NetconnectionID is the property where I can find desired network adapter (This is the only column contains "IBM USB"), again did some more mistakes, and I was getting either null data or errors.
c:\>get-wmiobject
win32_networkadapter | where-object {$_.netconnectID -like "*IBM USB*"}
c:\>get-wmiobject
win32_networkadapter | where-object {$_.netconnectID -match "*IBM USB*"}
c:\>get-wmiobject
win32_networkadapter | where-object {$_.netconnectID -match "*IBM USB*"} # spelling mistake ($_.netconnectID)
Ran below corrected command and compared Macaddress from powershell console and network adapter GUI, both were same.
c:\>get-wmiobject win32_networkadapter | where-object {$_.netconnectionID
-like "*IBM USB*"}
To find out how to enable or disable this network card ran get-member.
c:\>get-wmiobject
win32_networkadapter | where-object {$_.netconnectionID -like
"*IBM USB*"} | get-member
Final Script as below, saved networkadapter details in variable called "nic" then tried
it with Disable() to check and it worked, to enable card use enable() method. once you enable or disable verify it from network connections in control panel.
c:\> $nic = get-wmiobject
win32_networkadapter | where-object {$_.netconnectionID -like
"*IBM USB*"}
c:\>$nic.disable()
When running this script open network connections and you can check results.
***Have a nice scripting***