Functions/Safes/Get-PVSafeList.ps1
Function Get-PVSafeList { <# .SYNOPSIS Produces a list of Safes in the specified Vault .DESCRIPTION Exposes the PACLI Function: "SAFESLIST .PARAMETER location The location to search in for the Safes to include in the list. Note: Add a backslash ‘\’ before the name of the location. .PARAMETER includeSubLocations Whether or not in include sublocation(s) of the specified location in the list. .EXAMPLE Get-PVSafeList -location \ Lists all safes from the root location of the vault .NOTES AUTHOR: Pete Maan #> [CmdLetBinding()] param( [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$location, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [switch]$includeSubLocations ) PROCESS { $Return = Invoke-PACLICommand $Script:PV.ClientPath SAFESLIST "$($PSBoundParameters | ConvertTo-ParameterString) OUTPUT (ALL,ENCLOSE)" #if result(s) returned if ($Return.StdOut) { #Convert Output to array $Results = $Return.StdOut | ConvertFrom-PacliOutput #loop through results For ($i = 0 ; $i -lt $Results.length ; $i += 19) { #Get Range from array $values = $Results[$i..($i + 19)] #Output Object [PSCustomObject] @{ "Safename" = $values[0] "Size" = $values[1] "Status" = $values[2] "LastUsed" = $values[3] "Accessed" = $values[4] "VirusFree" = $values[5] "ShareOptions" = $values[6] "Location" = $values[7] "UseFileCategories" = $values[8] "TextOnly" = $values[9] "RequireReason" = $values[10] "EnforceExclusivePasswords" = $values[11] "RequireContentValidation" = $values[12] "AccessLevel" = $values[13] "MaxSize" = $values[14] "ReadOnlyByDefault" = $values[15] "SafeID" = $values[16] "LocationID" = $values[17] "SupportOLAC" = $values[18] } | Add-ObjectDetail -TypeName pacli.PoShPACLI.Safe } } } } |