Public/Complete-UserProvisioningSyncSessionOperation.ps1
|
function Complete-UserProvisioningSyncSessionOperation { [CmdletBinding()] Param( [Parameter(Mandatory = $false, ValueFromPipeline = $true)] $Operation ) Process { if ($Operation.Action -eq "New-ADUser") { $Operation | Show-UserProvisioningSyncSessionOperation -Single $Password = ConvertTo-SecureString -String (New-Guid).ToString() -AsPlainText -Force $Parameters = $Operation.Parameters New-ADUser -AccountPassword $Password @Parameters -Passthru | Out-Null } elseif ($Operation.Action -eq "Set-ADUser") { $Operation | Show-UserProvisioningSyncSessionOperation -Single $Parameters = $Operation.Parameters Set-ADUser -Identity $Operation.Identity @Parameters Write-Verbose "Updated AD user '$($Operation.Identity)'." } elseif ($Operation.Action -eq "Remove-ADObject") { $Operation | Show-UserProvisioningSyncSessionOperation -Single Remove-ADObject -Identity $Operation.Identity -Confirm:$false Write-Verbose "Removed AD object '$($Operation.Identity)'." } elseif ($Operation.Action -eq "Rename-ADObject") { $Operation | Show-UserProvisioningSyncSessionOperation -Single $Parameters = $Operation.Parameters $ADUser = Get-ADUser -Identity $Operation.Identity Rename-ADObject -Identity $ADUser.DistinguishedName @Parameters -Confirm:$false Write-Verbose "Renamed AD object '$($Operation.Identity)' to '$($Operation.Parameters.NewName)'." } elseif ($Operation.Action -eq "Move-ADObject") { $Operation | Show-UserProvisioningSyncSessionOperation -Single $Parameters = $Operation.Parameters $ADUser = Get-ADUser -Identity $Operation.Identity Move-ADObject -Identity $ADUser.DistinguishedName @Parameters -Confirm:$false Write-Verbose "Moved AD object '$($Operation.Identity)' to '$($Operation.Parameters.TargetPath)'." } else { Write-Error "Unknown operation action '$($Operation.Action)'." } } } |