Functions/Requests/Set-PVRequestStatus.ps1
Function Set-PVRequestStatus { <# .SYNOPSIS Enables authorized users or groups to confirm a request. .DESCRIPTION Exposes the PACLI Function: "CONFIRMREQUEST" .PARAMETER safe The name of the Safe for which the request has been created. .PARAMETER requestID The unique ID number of the request. .PARAMETER confirmRequest Whether to confirm or reject this request. .PARAMETER reason The reason for the action taken by the authorized user or group. .EXAMPLE Set-PVRequestStatus -safe SQL -requestID 11 -confirm Confirms request with ID 11 in safe SQL .NOTES AUTHOR: Pete Maan #> [CmdLetBinding(SupportsShouldProcess)] [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSShouldProcess", "", Justification = "ShouldProcess handling is in Invoke-PACLICommand")] param( [Parameter( Mandatory = $True, ValueFromPipelineByPropertyName = $True)] [Alias("Safename")] [string]$safe, [Parameter( Mandatory = $True, ValueFromPipelineByPropertyName = $True)] [int]$requestID, [Parameter( Mandatory = $True, ValueFromPipelineByPropertyName = $True)] [switch]$confirmRequest, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$reason ) PROCESS { #ConvertTo-ParameterString usually remove "Confirm", which conflicts with a parameter of the function $Return = Invoke-PACLICommand $Script:PV.ClientPath CONFIRMREQUEST "$($($PSBoundParameters | ConvertTo-ParameterString -doNotQuote requestID) -replace "confirmRequest","confirm") OUTPUT (ALL,ENCLOSE)" if ($Return.ExitCode -eq 0) { #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 += 21) { #Get Range from array $values = $Results[$i..($i + 21)] #Output Object [PSCustomObject] @{ "RequestID" = $values[0] "Username" = $values[1] "Operation" = $values[2] "Safe" = $values[3] "File" = $values[4] "Confirmed" = $values[5] "Reason" = $values[6] "Status" = $values[7] "InvalidReason" = $values[8] "Confirmations" = $values[9] "Rejections" = $values[10] "ConfirmationsLeft" = $values[11] "CreationDate" = $values[12] "LastUsedDate" = $values[13] "ExpirationDate" = $values[14] "AccessType" = $values[15] "UsableFrom" = $values[16] "UsableTo" = $values[17] "SafeID" = $values[18] "UserID" = $values[19] "FileID" = $values[20] } | Add-ObjectDetail -TypeName pacli.PoShPACLI.Request } } } } } |