Understanding the files collected by the Test-StorageHealth.ps1 PowerShell script

I recently published a PowerShell script to check the health and capacity of a Storage Cluster based on Windows Server 2012 R2 Scale-Out File Servers.

You can find details about this script (including the download link) in this blog post: PowerShell script for Storage Cluster Health Test published to the TechNet Script Center.

This script, when used without any parameters, simply performs a number of health checks and provides a report on health and capacity for the storage cluster.

However, when used with the optional –IncludeEvents parameter, it will collect lots of diagnostic information. The script also creates a convenient ZIP archive for transport.

Inside that ZIP (when you use the -IncludeEvents parameter), you will find a number of files that can help troubleshoot the storage cluster. That includes:

  • System Information (txt file). You can open it with Notepad to review details about the system, including CPU, memory, network interfaces, OS version and much more.
  • Cluster log (log file). This is a text file containing events from Failover Clustering. You can open it with Notepad to find every detail of what happened to the cluster.
  • Event logs for Failover Clustering, Hyper-V Shared VHDX, SMB, Core Storage and Storage Spaces (evtx file). You can open these with Event Viewer to look at the specific events, with the usual options to filter and search.
  • Mini dumps (dmp file). Dumps files contain information about what happened to the system during a crash. You can find more about how to read them at https://support.microsoft.com/kb/315263
  • PowerShell objects (xml file). Use PowerShell to import these objects into memory and query them. For instance: Import-CliXml .GetPhysicalDisk.XML | Select DeviceId, Model, FirmwareVersion
  • Performance details as a comma-separated file (txt file). Open with Excel to create a pivot table.

These files can be used by the Test-StorageHealth.ps1 script to recreate its output without being connected to the live cluster, using the –ReadFromPath parameter.

In addition to that, for a support professional or experienced administrator, these files include a wealth of information that can greatly help with troubleshooting.

Here is a comprehensive list of the files inside the ZIP created by the script:

File Name Quantity Type
node1.domain.com_cluster.log 1/node Cluster Log
node1.domain.com_Event_Application.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-FailoverClustering-CsvFs-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-FailoverClustering-Manager-Admin.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-FailoverClustering-Manager-Tracing.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-FailoverClustering-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-FailoverClustering-WMIProvider-Admin.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Hyper-V-High-Availability-Admin.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Hyper-V-Shared-VHDX-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Hyper-V-Shared-VHDX-Reservation.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-SmbClient-Connectivity.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-SMBClient-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-SmbClient-Security.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-SMBDirect-Admin.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-SMBHashGeneration-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-SMBServer-Connectivity.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-SMBServer-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-SMBServer-Security.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-ATAPort-Admin.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-ATAPort-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-ClassPnP-Admin.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-ClassPnP-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-Disk-Admin.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-Disk-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-MultipathIoControlDriver-Admin.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-MultipathIoControlDriver-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-StorageSpaces-Driver-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-StorageSpaces-ManagementAgent-WHC.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-Storport-Admin.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-Storport-Operational.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-Storage-Tiering-Admin.EVTX 1/node Event Log
node1.domain.com_Event_Microsoft-Windows-VHDMP-Operational.EVTX 1/node Event Log
node1.domain.com_Event_System.EVTX 1/node Event Log
node1.domain.com_SystemInfo.TXT 1/node System Info
node1.domain.com _062414-129296-01.dmp varies Minidump
GetAllErrors.XML (Event Summary) 1 PowerShell Object
GetCluster.XML 1 PowerShell Object
GetClusterGroup.XML 1 PowerShell Object
GetClusterNetwork.XML 1 PowerShell Object
GetClusterNode.XML 1 PowerShell Object
GetClusterResource.XML 1 PowerShell Object
GetClusterSharedVolume.XML 1 PowerShell Object
GetParameters.XML 1 PowerShell Object
GetDedupVolume.XML 1 PowerShell Object
GetDrivers.XML 1 PowerShell Object
GetNetAdapter_node1.domain.com.XML 1/node PowerShell Object
GetPartition.XML 1 PowerShell Object
GetPhysicalDisk.XML 1 PowerShell Object
GetReliabilityCounter.XML 1 PowerShell Object
GetSmbOpenFile.XML 1 PowerShell Object
GetSmbServerNetworkInterface_node1.domain.com.XML 1/node PowerShell Object
GetSmbShare.XML 1 PowerShell Object
GetSmbWitness.XML 1 PowerShell Object
GetStorageEnclosure.XML 1 PowerShell Object
GetStoragePool.XML 1 PowerShell Object
GetVersion.XML 1 PowerShell Object
GetVirtualDisk.XML 1 PowerShell Object
GetVolume.XML 1 PowerShell Object
ShareStatus.XML 1 PowerShell Object
GetAssociations.XML 1 PowerShell Object
VolumePerformanceDetails.TXT (open with Excel to create a pivot table) 1 Text/CSV