Functions/User/Unblock-PASUser.ps1
function Unblock-PASUser { <# .SYNOPSIS Activates a suspended user .DESCRIPTION Activates an existing vault user who was suspended due to password failures. .PARAMETER id The user's unique ID .PARAMETER UserName The user's name .PARAMETER Suspended Suspension status .EXAMPLE Unblock-PASUser -UserName MrFatFingers -Suspended $false Activates suspended vault user MrFatFingers using the Classic API .EXAMPLE Unblock-PASUser -UserName MrFatFingers -id 666 Activates suspended vault user MrFatFingers using the API from 10.10+ #> [CmdletBinding(DefaultParameterSetName = "10_10")] param( [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "10_10" )] [int]$id, [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "ClassicAPI" )] [string]$UserName, [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $false, ParameterSetName = "ClassicAPI" )] [ValidateSet($false)] [boolean]$Suspended ) BEGIN { $MinimumVersion = "10.10" $Request = @{"WebSession" = $Script:WebSession } }#begin PROCESS { If ($PSCmdlet.ParameterSetName -eq "10_10") { Assert-VersionRequirement -ExternalVersion $Script:ExternalVersion -RequiredVersion $MinimumVersion #Create request $Request["URI"] = "$Script:BaseURI/api/Users/$id/Activate" $Request["Method"] = "POST" } ElseIf ($PSCmdlet.ParameterSetName -eq "ClassicAPI") { #Create request $Request["URI"] = "$Script:BaseURI/WebServices/PIMServices.svc/Users/$($UserName | Get-EscapedString)" $Request["Method"] = "PUT" $Request["Body"] = $PSBoundParameters | Get-PASParameter -ParametersToRemove UserName | ConvertTo-Json } #send request to web service $result = Invoke-PASRestMethod @Request if ($result) { $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.User } }#process END { }#end } |