How to use the Test-StorageHealth.ps1 PowerShell script with different configurations

If you’ve tried the Test-StorageHealth.ps1 PowerShell script, you noticed it assumes a verify specific Scale-Out File Server configuration:

  • 4 cluster nodes
  • 2 cluster networks
  • 33 cluster shared volumes
  • 16 deduplicated volumes
  • 240 physical disks
  • 3 storage pools
  • 4 storage enclosures

The scripts assumes you’re using a typical Scale-Out File Server configuration described in these TechNet pages:

However, the script defines those values as parameters that you can specify on the command line. For instance, I recently tried the script in a smaller configuration I have here in the office, with the following parameters:

.Test-StorageHealth.ps1 -ExpectedNodes 3 -ExpectedNetworks 2 -ExpectedVolumes 6 -ExpectedDedupVolumes 0 -ExpectedPhysicalDisks 12 -ExpectedPools 1 -ExpectedEnclosures 1 -HoursOfEvents 12

These parameters will tell the script what to use instead of the default settings. Note that you can specify all the details and the script will now warn on your specified settings. These settings are saved inside the ZIP file and will be taken into consideration also when you replay it from a folder with the –ReadFromPath parameter (you don’t need to specify the settings again, they will be read from a file).

Note also that we used a parameter to specify the number of hours of error events to collect. The “-HoursOfEvents 12” parameter will instruct the script to look for error events only the last 12 hours. The default setting is to look in the past 24 hours.

You can find the script available for download at

Do you have any additional ideas for the script? Post a comment and let us know…