2010-06-09 6 views

Antwort

8

Ein grundlegender Befehl ist

Get-WmiObject -ComputerName 'servername' -Class Win32_NetworkAdapter | ` 
    Where-Object { $_.Speed -ne $null -and $_.MACAddress -ne $null } | ` 
    Format-Table -Property SystemName,Name,NetConnectionID,Speed 

Beachten Sie, dass die Computername-Parameter einen Array nehmen, so dass Sie diese gegen mehrere Computer zur Verfügung gestellt ausführen können Sie Rechte haben. Ersetzen Sie die Liste der Format-Table-Eigenschaften durch *****, um eine umfassendere Liste der verfügbaren Eigenschaften zu erhalten. Vielleicht möchten Sie nach diesen Eigenschaften filtern, um Einträge loszuwerden, an denen Sie nicht interessiert sind.

Die Verwendung der eingebauten Multiplikator-Suffixe (MB, GB usw.) würde auch die Geschwindigkeit besser lesbar machen, je nach Ihren Bedürfnissen. Sie könnten dies als einen HashTable-Eintrag im Format-Table-Property-Array angeben, z.

Format-Table -Property NetConnectionID,@{Label='Speed(GB)'; Expression = {$_.Speed/1GB}} 
+0

Eine nette Antwort! Ich würde die '-ne $ null'-Teile entfernen. –

+0

Es gibt tatsächlich einige Einträge für die Win32_NetworkAdapter-Klasse zurückgegeben, überprüfen Sie es. Ich benutze die -ne $ null, um Einträge herauszufiltern, damit ich die tatsächlichen Einträge für echte physische Karten sehen kann, aber Sie können sich anpassen, wie Sie es für richtig halten. –

+0

[System.Net.NetworkInformation.NetworkInterface] :: GetAllNetworkInterfaces() funktioniert nur gegen den lokalen Computer. –

0

Meine aktuelle Version, Bluetooth und Wireless-Karten herausnehmen (laufen mit Power -datei script.ps1):

# return network speed as exit code 

$speed = Get-WmiObject -Class Win32_NetworkAdapter | 
where { $_.speed -and $_.macaddress -and 
$_.name -notmatch 'wireless|wi-fi|bluetooth|802\.11' } | select -expand speed 
exit $speed/1000000 
Verwandte Themen