Powershell script to retrieve file version information.

#Extracts file version information from arbitrary files
#This list of files was specified by Microsoft for a specific fault,
#but you could enter any file.

$msicsiFile = get-item C:\Windows\System32\Drivers\msiscsi.sys
$mpioFile = get-item C:\Windows\System32\Drivers\mpio.sys
$storportFile = get-item C:\Windows\System32\Drivers\storport.sys
$volsnapFile = get-item C:\Windows\System32\Drivers\volsnap.sys
$msdsmFile = get-item C:\Windows\System32\Drivers\msdsm.sys
$tcpipFile = get-item C:\Windows\System32\Drivers\tcpip.sys
$clusdiskFile = get-item C:\Windows\System32\Drivers\clusdisk.sys
$bcomFile = get-item C:\Windows\System32\drivers\b57nd60a.sys


Windows Server 2012 R2 Hyper-V networking failures

We’ve been having intermittent failures of our Hyper-V cluster recently, and it was, bizarrely, getting worse with time. 2 x PowerEdge R720s, 2 x PowerConnect 6224 switches (stacked), 2 x EqualLogic PS4100E boxes. The network on one node would fail completely- could be the LAN team, or the LiveMigration, or CSV etc. It was fairly random.

Turns out- after a lot of troubleshooting by Microsoft- that turning off anything relating to Virtual Machine Queues/ VMQ settings for the LAN team AND associated physical NICs, and upgrading the Broadcom driver from 16.4 to 16.6 has at least stabilized the situation. From lasting 7-10 days before, cluster has now run for over a month, including a host reboot. Still not 100% confident, but far better.

Incidentally, when chasing Broadcom drivers the Dell package suite names are misleading. Package 18.4 gives you driver 16.4.

My instinct tells me it was the driver at fault- none of the Hyper-V settings had changed since the cluster was built, whereas the driver would almost certainly have been upgraded with an SUU dvd. Can’t prove any of this but anyway the last failure was over a month ago, and it’s carried on working since a complete reboot last Tuesday night.

Powershell script to enumerate server serial number, name, manufacturer

Requires an associated txt file with a list of server names/ ip addresses.


#Pings a list of IP addresses, pulls the serial number, manufacturer and computer name from responsive computers

del C:\Support\Scripts\hardware\dellHardware.txt

#Reads from a list of servers
get-content c:\Support\Scripts\Hardware\dellST.txt | Foreach-Object {

#Sets $Result variable to output of test-connection
$Result = test-connection $_ -Quiet

#If $Result is false (i.e. this machine can’t connect to the remote server),
#Send an email out to support staff saying the remote server is down.
if ($Result -eq $True)
$details = Get-WmiObject win32_SystemEnclosure -ComputerName $_ | Select SerialNumber,PSComputerName,Manufacturer}
Add-Content -Path C:\Support\Scripts\hardware\dellHardware.txt $details