Obtención de velocidad de NIC de Powershell en el servidor Win2008 R2

1

Estoy tratando de obtener la velocidad de NIC a través de Powershell en algunos de mis servidores. Para mi servidor de laboratorio, sé que hay una NIC de 1 GB. Sin embargo, cuando hago esto a través de Powershell obtengo el siguiente número extraño:

 Get-WmiObject -Class Win32_NetworkAdapter -filter "Name LIKE '%Intel%' OR Name LIKE '%HP%' OR Name LIKE '%Broadcom%'" | select name, speed | ft -AutoSize

name                                                       speed
----                                                       -----
Intel(R) 82580 Gigabit Network Connection    9223372036854775807

La velocidad que estoy recuperando es " 9223372036854775807" - Revisé la propiedad WMI para Speed ​​in Win32_NetworkAdaptery regresa " Bits per second" - sin embargo, en la conversión, ¿esto parece mucho más de 1GB por segundo?

¿Alguna idea de por qué estoy recuperando esto y también la mejor manera de determinar la velocidad de NIC (y confirmar que definitivamente es de 1 GB)?

Como tengo muchos servidores, preferiría conocer la mejor manera de obtener esta información si tiene alguna idea.

lara400
fuente

Respuestas:

1

Obtenga una lista de equipos de dominio (Ejecutar en AD):

Import-Module ActiveDirectory Get-ADComputer -Filter * | ForEach-Object {$ _. Name}

O de un archivo:

$computers = Get-Content -Path computers.txt

Para múltiples computadoras:

foreach ($comp in $computers) {

   echo $comp
   Get-WmiObject win32_networkadapter -ComputerName $comp  | Select Name,Manufacturer,Description ,AdapterType,Speed,MACAddress,NetConnectionID | Where-Object {$_.AdapterType -like "*Ethernet*"}

}

Eso se imprimirá para cada computadora en la lista:

Name            : Broadcom NetLink (TM) Gigabit Ethernet
Manufacturer    : Broadcom Corporation
Description     : Broadcom NetLink (TM) Gigabit Ethernet
AdapterType     : Ethernet 802.3
Speed           : 1000000000
MACAddress      : B8:AC:6F:41:B5:D3
NetConnectionID : Ethernet

Nota: La velocidad es en bits por segundo, convierta a Gbps o Mbps según sea necesario

Neo
fuente
0

Para la consulta original, si se reemplaza speedcon @{n="Speed";e={$_.speed/1mb}}, que devuelve un resultado calculado, en Las mega bits de .

Si lo hace @{n="Speed";e={$_.speed/1gb}}, devolverá el resultado en Gbits respetuosamente.

Powershell no sabe cuál es la medida original, y MB / mb es lo mismo que powershell. Por lo tanto, si necesita que el resultado esté en bytes , debe dividirlo manualmente entre otros 8, @{n="Speed";e={$_.speed/1mb/8}}

El guión alterado sería:

Get-WmiObject -Class Win32_NetworkAdapter -filter "Name LIKE '%Intel%' OR Name LIKE '%HP%' OR Name LIKE '%Broadcom%'" | select name, @{n="Speed";e={$_.speed/1gb}} | ft -AutoSize

Y este formato alternativo @{n="name";e={$_.property *operations*}}funcionaría para cualquier selección en powershell.

Kai Zhao
fuente