I had an issue with one of my hosts this week who’s nic had auto-negotiated to the wrong speed, following this I wrote a quick script to check the rest of my hosts.
Good job as there were a fair few nics running at 100MB rather than 1GB causing a few issues.
The following script will list each host and there nics and speeds….
Connect-VIServer MYVISERVER $VMhosts = Get-VMHost | Get-View Foreach ($vmhost in $vmhosts){ Write-Output $vmhost.Name $pnic = 0 Do { $Speed = $VMhost.Config.Network.Pnic[$pnic].LinkSpeed.SpeedMb Write "Pnic$pnic $Speed" $pnic ++ } Until ($pnic -eq ($VMhost.Config.Network.Pnic.Length))}
I want to retrieve crc errors count each nic per host in cluster.donu have any scripts for that
add at the end of file this special character }
Sorry had an issue with the code when it was pasted to the blog, try it again now.
I’m kind of new to the powershell scripts so maybe I’m missing something simple. To run this would I just paste it into a notepad and save with a .ps1 extension then run it? If so I’m getting an error that says:
[vSphere PowerCLI] C:\Powershell_Scripts> .\GetHostPhysicalNicSpeed.ps1
Unexpected token ‘in’ in expression or statement.
At C:\Powershell_Scripts\GetHostPhysicalNicSpeed.ps1:3 char:52
+ $VMhosts = Get-VMHost | Get-ViewForeach ($vmhost in <<<< $vmhosts){Write-Out
put
+ CategoryInfo : ParserError: (in:String) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken
Thanks Iri, Glad someone else finds it usefull.
Very useful, thanks.