StorSimple PowerShell Module


This is a script module that has functions that are typically used with StorSimple 8k series Hybrid Cloud storage iSCSI SAN.

v1.0.8 – 1 November 2016

Added Check-StorSimple function, and updated Monitor-StorSimpleBackup function to include a -Retry parameter.

Check-StorSimple: This function comes pretty handy when troubleshooting StorSimple device deployment, or generally troubleshooting issues with StorSimple 8k series. This is intended to be run from a file server that’s accepted/should accept iSCSI volume(s) from the StorSimple device. It accepts 2 parameters:

  1. StorSimpleData0IP (required): You guessed it. It’s the IP address of the StorSimple device Data0 interface
  2. LogFile (Optional): path where the script will log (save to text file) its output, in addition to displaying it at the PowerShell console.

It performs the following tasks:

  • Get Device interfaces: this section displays the IP information of the device configured network interfaces including MAC addresses. It also lists the interfaces configured for iSCSI traffic
  • Check device status: this runs the Get-HcsSystem cmdlet and displays information about the device such as controller status, serial number, device name, …
  • Check cloud connectivity: this runs the Test-HcsmConnection and performs connectivity testing from the device to Azure and back
  • Enable response to ping
  • Test iSCSI connectivity: this pings from every iSCSI interface on this computer to every iSCSI interface on the StorSimple device and back. It also performs TraceRoute back and forth between each iSCSI interface combination (to identify if iSCSI traffic is routed)
  • Get device firmware detail

Here’s sample output:

checkstorsimple2


v1.0.7 – 17 September 2016

Added 3 functions:

Monitor-StorSimpleBackup: This function monitors StorSimple backups and can email HTML report to recipient list. See more information in this post.

This can be used as a scheduled task to run periodically:

  1. Create a small script like the following and save it as ‘c:\Sandbox\Monitor-StorSimpleBackup.ps1’ for example:
    $Splatt = @{
    SubscriptionName = ‘xxxx-StorSimplexxxx-Production’
    StorSimpleManagerName = ‘xxxx-useast’
    RegistrationKey = ‘2080530255625632xxxxdivUA==#f9879808b0513556’
    TargetDeviceName = ‘8100-xxxxuseast’
    SubscriptionID = ‘1ef29658-bxxxxa323e8’
    PublishSettingsFile = ‘D:\Sandbox\Certs\Axxxx-credentials.publishsettings’ # Add-AzureAccount; Get-AzurePublishSettingsFile
    # EmailSender = ‘StorSimple Backup Monitor <sboutros@vertitechit.com>’
    # EmailRecipients = ‘Sam Boutros <sboutros@vertitechit.com>’
    # SMTPServer = ‘smtp-relay.gmail.com’
    Duration = 1 # Report on backups from the past x days
    LogFile = “d:\Sandbox\Logs\Axxxx-Monitor-StorSimpleBackup-$(Get-Date -Format ‘dd MMMM yyyy hh-mm-ss tt’).txt”
    HTMLFile = “d:\Sandbox\Logs\Axxxx-Monitor-StorSimpleBackup-$(Get-Date -Format ‘dd MMMM yyyy hh-mm-ss tt’).htm”
    }
    Monitor-StorSimpleBackup @Splatt
  2. In PowerShell ISE run the following commands to schedule it:
    $ScriptPath = ‘C:\Sandbox\Monitor-StorSimpleBackup.ps1’
    $TaskName = ‘StorSimpleBackupMonitor’
    $TaskRun = “powershell.exe -NoLogo -NonInteractive -WindowStyle Hidden -Command “”$ScriptPath”””
    # Example: Daily at 7 AM
    SCHTASKS.EXE /Create /S $Env:COMPUTERNAME /RU SYSTEM /SC DAILY /TN $TaskName /TR $TaskRun /ST 07:00 /RL HIGHEST /F 

ConvertTo-EnhancedHTML and ConvertTo-EnhancedHTMLFragment: 2 functions by Don Jones, used by Monitor-StorSimpleBackup function. Thank you Don 🙂

v1.0.4 – 15 September 2016

The module includes 4 functions:

Write-Log: This is a supporting function, not specific to StorSimple. It is used to write script output to both console and log file. This is an updated version of this function.

Connect-StorSimple: This is a function to open a remote PowerShell session to a StorSimple device

Get-StorSimpleInterface: This is a function to obtain IPv4 network interface information from a StorSimple device

Update-StorSimpleSoftware: This is a function that automates the deployment of a StorSimple software update via PowerShell.
Typically, we would deploy a Software update from the classic portal (as of 15 September 2016). However, Microsoft makes the updates available in a ‘phased rollout‘ via Windows Updates, which means searching for an update via the classic portal often comes back negative even when an update is available. If you’re about to put a device in production, you’re likely to want to get the update now and not wait (many updates include a Maintenance Mode update that requires down time). To get the update now you can follow this manual process to get it from Windows Updates, OR use the Update-StorSimpleSoftware function from this script module.


Getting started:

To use the functions/cmdlets in this module, download this module, extract the files using Winrar for example.

  • Open PowerShell ISE as Administrator sbstorsimple01
  • Open and execute the Install-Module.ps1 script sbstorsimple02
  • Optionally, configure your PowerShell profile to auto-load the SBStorSimple module and add an alias for Write-Log: sbstorsimple03
  • You need to have PowerShell remoting enabled on your StorSimple device. See this post for more details.
  • You need to have the IPv4 address of your StorSimple data0 network interface, and your device Administrator password. Both are available in the classic portal (you cannot see the password but you can reset it there).