Scripts/Lock-BPAObject.ps1
function Lock-BPAObject { <# .SYNOPSIS Locks an AutoMate BPA object. .DESCRIPTION Lock-BPAObject receives BPA object(s) on the pipeline, or via the parameter $InputObject, and locks the object(s). .PARAMETER InputObject The object(s) to be locked. .INPUTS The following objects can be locked by this function: Workflow Task Process .EXAMPLE Get-BPAWorkflow "My Workflow" | Lock-BPAObject .NOTES Author(s): : David Seibel Contributor(s) : Date Created : 11/07/2016 Date Modified : 02/08/2018 .LINK https://github.com/davidseibel/PoshBPA #> [CmdletBinding()] param( [Parameter(Mandatory = $true, ValueFromPipeline = $true)] $InputObject ) PROCESS { foreach ($obj in $InputObject) { switch ($obj.TypeName) { "Workflow" { $update = Get-BPAWorkflow -ID $obj.ID -BPAServer $obj.BPAServer } "Task" { $update = Get-BPATask -ID $obj.ID -BPAServer $obj.BPAServer } "Condition" { $update = Get-BPACondition -ID $obj.ID -BPAServer $obj.BPAServer } "Process" { $update = Get-BPAProcess -ID $obj.ID -BPAServer $obj.BPAServer } default { Write-Error -Message "Unsupported input type '$($obj.TypeName)' encountered!" -TargetObject $obj } } $user = Get-BPAUser -BPAServer $obj.BPAServer | Where-Object {$_.Name -ieq $BPAConnectionInfo.Credential.UserName} $update.LockedBy = $user.ID $update | Set-BPAObject Write-Verbose "Locked $($obj.TypeName) '$($obj.Name)'." } } } |