New PowerShell SDK Release 1.13!

I am happy to announce a HUGE release of the PowerShell SDK, version 1.13. With this new release the version naming adopts the REST API version that is supported as part of the SDK. This should help remove confusion for the latest version of the REST API that is supported with new releases of the SDK.

Installation process is the same from the PowerShell Gallery (PSGallery).

PS C:\> Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
PS C:\> Install-Module -Name PureStoragePowerShellSDK -RequiredVersion

Note: Use Set-PSRepository to enable the PSGallery as Trusted to avoid the Untrusted message.

New -Filter Parameter for FlashArray Remote Filtering

A new parameter, -Filter, has been added for any cmdlet that supports returning multiple objects. The cool thing about using the -Filter parameter is that is provides FlashArray filtering vs client-side filtering (Eg. Where-Object). This can be very beneficial when working with large amounts of volumes, snapshots or hosts so a large dataset is not returned to the client. It would be great to get feedback on this new parameter, add a comment here or ping me via twitter (@8arkz).

PS C:\> $MyFlashArray = New-PfaArray -EndPoint -UserName pureuser -IgnoreCertificateError

cmdlet New-PfaArray at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
Password: ********
PS C:\> Get-PfaVolumes -Array $MyFlashArray -Filter "Name='*Server*'" | Format-Table -AutoSize

To get help using this new -Filter parameter use the following:

PS C:\> Get-Help -Name about_Purity_Filtering

    Describes how PureStoragePowerShellSDK cmdlets support filtering to narrow down results.

    The PureStoragePowerShellSDK supports filtering for various methods that might return multiple objects. The 
filter query parameter narrows down the results of a request to only the response objects that satisfy the filter 
criteria. Cmdlets that support filtering expose the -Filter parameter that takes a string representing the filter 

New ActiveCluster Cmdlets

A lot of the work in SDK 1.13 corresponds to the latest release of Purity 5.x. In the new version Purity we introduced ActiveCluster for synchronous replication.

  • Add-PfaArrayToPod
  • Copy-PfaPod
  • Get-PfaAllPodFootprint
  • Get-PfaAllPodMediator
  • Get-PfaAllPodSpaceHistory
  • Get-PfaAllPodSpaces
  • Get-PfaNamedPodFootprint
  • Get-PfaNamedPodMediator
  • Get-PfaNamedPodSpace
  • Get-PfaNamedPodSpaceHistory
  • Get-PfaNamedPods
  • Get-PfaPendingDeletePods
  • Get-PfaPendingPodFootprint
  • Get-PfaPendingPodMediator
  • Get-PfaPendingPodSpace
  • Get-PfaPod
  • Get-PfaPods
  • New-PfaPod
  • Remove-PfaArrayFromPod
  • Remove-PfaPod
  • Rename-PfaPod
  • Restore-PfaPod
  • Get-PfaRemoteHost
  • Get-PfaRemoteHostGroup
  • Get-PfaRemoteHostGroupVolumeConnections
  • Get-PfaRemoteHostGroups
  • Get-PfaRemoteHosts
  • Get-PfaRemoteVolumeHostConnections
  • Get-PfaRemoteVolumeHostGroupConnections
  • Get-PfaVolumeConnection

Example of adding and removing a volume from a Pod:

PS C:\> Add-PfaVolumeToContainer -Array $MyFlashArray -Container 'TEST-POD' -Name 'TEST-PODVOLUME'

source :
serial : 45084F3508BF461400012564
created : 5/16/2018 11:28:28 AM
size : 1099511627776

PS C:\> Remove-PfaVolumeFromContainer -Array $MyFlashArray -Name 'TEST-POD::TEST-PODVOLUME'

source :
serial : 45084F3508BF461400012564
created : 5/16/2018 11:28:28 AM
size : 1099511627776

New Named Certificate Management Cmdlets

  • Get-PfaNamedCertificate
  • Get-PfaNamedCertificateAttribute
  • Get-PfaNamedCertificateAttributes
  • Import-PfaNamedCertificate
  • Remove-PfaNamedCertificate
  • New-PfaNamedCertificateImport
  • New-PfaNamedSelfSignedCertificate

New Mirrored IO Statistics Cmdlets

Retrieves  performance statistics for I/Os that have been mirrored as part of ActiveCluster.

  • Get-PfaAllHostGroupIOMetricsMirrored
  • Get-PfaAllHostIOMetricsMirrored
  • Get-PfaAllPodIOMetricsMirrored
  • Get-PfaAllVolumeIOMetricsMirrored
  • Get-PfaArrayIOMetricsMirrored
  • Get-PfaHostGroupIOMetricsMirrored
  • Get-PfaHostIOMetricsMirrored
  • Get-PfaPodIOMetricsMirrored
  • Get-PfaVolumeIOMetricsMirrored

New Cmdlets to Support Key Management 

  • Get-PfaKmip
  • Get-PfaKmips
  • New-PfaKmip
  • Remove-PfaKmip
  • Test-PfaKmip
  • Update-PfaKmip

New Purity Run Cmdlet

  • Get-PfaPureAppsAttributes

Example of retrieving Purity Run app status. Today we support Windows Files Services (WFS) that uses Microsoft Windows Server 2016 Standard edition to run file services with Failover Clustering.

New Volume Group and VVol Cmdlets

  • Get-PfaAllVolumeGroupIOMetrics
  • Get-PfaAllVolumeGroupIOMetricsByTimeRange
  • Get-PfaAllVolumeGroupsIOMetricsAverage
  • Get-PfaAllVolumeGroupsIOMetricsTotal
  • Get-PfaVolumeGroupIOMetrics
  • Get-PfaVolumeGroupIOMetricsAverage
  • Get-PfaVolumeGroupIOMetricsByTimeRange
  • Get-PfaVolumeGroupSpaceMetrics
  • Get-PfaVolumeGroupSpaceMetrics
  • Get-PfaNamedVolumeGroupsIOMetricsByTimeRange
  • Get-PfaNamedVolumeGroups
  • Get-PfaPendingDeleteVolumeGroups
  • Get-PfaProtocolEndpointVolumes
  • Get-PfaProtocolEndpointVolume
  • Get-PfaVolumeGroups
  • Get-PfaVolumeGroup
  • New-PfaHostGroupProtocolEndpointVolumeConnection
  • New-PfaHostProtocolEndpointVolumeConnection
  • New-PfaProtocolEndpointVolume
  • New-PfaVolumeGroup    
  • Remove-PfaVolumeGroup
  • Restore-PfaVolumeGroup

Additional New Cmdlets

  • Get-PfaArrayTCPConnection
  • Set-PfaSnmpManagerNotification


Phew! Lots of additions and more examples will be coming on my blog.



  1. Great work. Is there anyway to specify a Preferred Array for a host yet? We need to specify this on each side of a pod for each host connecting to a volume stretched between two arrays. Cheers.

    • Hi Richard —

      This is a known issue with the REST API. We will be added to a future REST API release. As a workaround for today you can use all of the other cmdlets for managing ActiveCluster but you’ll need to use New-PfaCliCommand to run purehost create|setattr –preferred-array. I plan on writing a blog with an example to show how to implement.


    • Hi Alex —

      There are a few ways to do this.
      (1) Go to the Volumes and click the ellipses in the Volume widget. You will see a Download CSV option.
      (2) Get-PfaVolumes -Array $FlashArray | Export-Csv -Path c:\temp\volumes.csv -NoTypeInformation. This will give you results that look like:
      source serial created name size
      45084F3508BF461400011931 12/22/16 0:38 ch2-barkz-07-data1 2.68435E+11
      45084F3508BF461400011932 12/22/16 0:38 ch2-barkz-08-data1 2.68435E+11
      45084F3508BF461400011CA7 8/31/17 18:23 wfs-witness 1073741824
      45084F3508BF461400011CA8 8/31/17 18:23 wfs-data 1.75922E+13
      45084F3508BF461400011CA9 8/31/17 18:23 @WFS_boot-ct0 2.14748E+11
      @WFS_boot-ct0 45084F3508BF461400011CAB 8/31/17 18:25 @WFS_boot-ct1 2.14748E+11
      45084F3508BF461400011CF9 9/12/17 16:27 ch2-barkz-02-data1 2.19902E+12
      45084F3508BF461400011CFA 9/12/17 16:28 ch2-barkz-03-data1 2.68435E+11
      ch2-barkz-04-data1 45084F3508BF461400011CFC 12/18/17 23:41 ch2-barkz-04-data1 1.09951E+12
      45084F3508BF461400011CFD 9/12/17 19:40 ch2-barkz-05-data1 2.68435E+11
      45084F3508BF461400011D10 9/13/17 17:14 ch2-barkz-01-data1 2.19902E+12
      45084F3508BF46140001216E 3/6/18 3:18 ch7-barkz-03-infra 1.09951E+12
      45084F3508BF46140001391B 7/9/18 23:27 ch2-barkz-01-vm-datastore1 8.79609E+12
      45084F3508BF46140001493D 10/2/18 4:09 ch7-barkz-03-data1 1.09951E+12
      45084F3508BF46140001493E 10/2/18 4:09 ch7-barkz-08-data1 1.09951E+12
      45084F3508BF461400014956 10/24/18 15:43 odx_test 1.09951E+12
      45084F3508BF461400014D3F 10/30/18 22:04 ch2-barkz-03-data2 2.19902E+12
      45084F3508BF461400014D40 10/30/18 23:26 ch2-barkz-02-data2 2.19902E+12
      ch2-barkz-02-data3 45084F3508BF461400014D41 3/29/19 15:36 ch2-barkz-02-data3 1.09951E+12

Add Comment

Required fields are marked *. Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.