Windows NICカードのデュプレックスステータスをテストするコマンドラインが必要


2

これはWindows 7用です

私は次のpowershellコマンドを試しました

get-wmiobject Win32_NetworkAdapter | foreach-object {   get-wmiobject -namespace root/WMI -class MSNdis_macOptions -filter "InstanceName='$($_.Name)'"}

しかし、私はこれから有用な情報を得ることができないようです。


1
関連する質問をご覧ください。これは、Windows APIを介して利用できるもののようには見えません。通常、NICドライバーレベルでのみ使用可能なものです。おそらく、NICの製造元が入手できるものがあるかもしれません。 この投稿はそれも確認しています。
21:14にヘビー

回答:


0

私はWindows 8(およびGet-NetAdapterAdvancedProperty)を持っていないので、これを使用してSpeed / Duplexを取得しました。

更新:これは私を夢中にさせていました。キーが存在しないとさまざまなエラーが発生しましたが、特定のデバイスにはUSBパススルーやMicrosoft Clusterデバイスのような速度/デュプレックスがありません。デュプレックスの列挙値を使用し、使用可能なすべてのNICを循環するように更新しました。

また、オリジナルはターゲット上のレジストリではなく、ローカルホストを見ていました。

Function Get-NICSpeedDuplex {
   Param (
      [String]$computer
   )
   $key = "SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}"

   gwmi -Class Win32_NetworkAdapterConfiguration -Computer $computer -Filter "IPEnabled='$true'" | % {
      $suffix = $([String]$_.Index).PadLeft(4,"0")

      #get remote registry value of speed/duplex
      $reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $computer)
      $service = $reg.OpenSubKey("$key\\$suffix\\Ndi").GetValue("Service")
      If ($service -imatch "usb") {
         # This USB device will not have a '*SpeedDuplex' key
         New-Object PSObject -Property @{
            "Device" = $_.Description
            "Speed/Duplex" = "USB Device"
         }
      } ElseIf ($service -imatch "netft") {
         # Microsoft Clustered Network will not have a '*SpeedDuplex' key
         New-Object PSObject -Property @{
            "Device" = $_.Description
            "Speed/Duplex" = "Cluster Device"
         }
      } Else {
         $speedduplex = $reg.OpenSubKey("$key\\$suffix").GetValue("*SpeedDuplex")
         $enums = "$key\$suffix\Ndi\Params\*SpeedDuplex\enum"
         New-Object PSObject -Property @{
            "Device" = $_.Description
            "Speed/Duplex" = $reg.OpenSubKey($enums).GetValue($speedduplex)
         }
      }
   }
}

このレジストリキーは少し不格好なハードコーディングですが、Windows 7 PCとリモートサーバー(2003/2008/2012)で動作するようです。この記事から:「サブキーは、システムがサポートするネットワークアダプターデバイスのクラスを表します。」

スクリプトの出力:

PS C:\> Get-NICSpeedDuplex "test-server-xx" | ft -auto

Speed/Duplex     Device                                    
------------     ------                                    
Auto Negotiation vmxnet3 Ethernet Adapter                  
Auto Negotiation vmxnet3 Ethernet Adapter #4               
Cluster Device   Microsoft Failover Cluster Virtual Adapter
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.