functions/user/Set-CloudiQUser.ps1
function Set-CloudiQUser { <# .SYNOPSIS Update information about a Cloud-iQ user. .DESCRIPTION Update information about a Cloud-iQ user. .PARAMETER .INPUTS Id or username of a user. .OUTPUTS Outputs a PSCustomObject. .EXAMPLE Set-CloudiQUser #> [CmdletBinding()] param ( [Parameter(Position = 0)] [string] $Id, [Parameter(Position = 1)] [string] $Username, [Parameter(Position = 2)] [string] $Firstname, [Parameter(Position = 3)] [string] $Lastname, [Parameter(Position = 4)] [string] $Email, [Parameter(Position = 5)] [Int32] $PhoneNumber, [Parameter(Position = 6)] [switch] $LockoutEnabled, [Parameter(Position = 7)] [string] $LockoutEnd, [Parameter(Position = 8)] [switch] $TenantAdmin, [Parameter(Position = 9)] [switch] $NewUsername ) $userObject = Get-CloudiQUser -Id $Id if ($Username) { Write-Verbose -Message "No Id provided, getting the Id by using the username; $Username" $Id = Get-CloudiQUser -Username "roberth.strand@crayon.com" | Select-Object -ExpandProperty Id } If ($Firstname) { Write-Verbose -Message 'Changing firstname' $userObject.FirstName = $Firstname } If ($Lastname) { Write-Verbose -Message 'Changing lastname' $userObject.LastName = $Lastname } If ($Email) { Write-Verbose -Message 'Changing Email' $userObject.Email = $Email } If ($NewUsername) { Write-Verbose -Message 'Changing username' $userObject.Username = $NewUsername } If ($PhoneNumber) { Write-Verbose -Message 'Changing phonenumber' $userObject.PhoneNumber = $PhoneNumber } If ($LockoutEnabled) { Write-Verbose -Message 'Setting lockout' $userObject.LockoutEnabled = $LockoutEnabled } If ($LockoutEnd) { Write-Verbose -Message 'Setting when lockout ends' $userObject.LockoutEnd = $LockoutEnd } If ($TenantAdmin) { Write-Verbose -Message 'Setting if user is tenant admin' $userObject.TenantAdmin = $TenantAdmin } $callParam = @{ Uri = "users/$Id" Method = 'PUT' Body = $userObject } try { Invoke-CloudiQApiRequest @callParam } catch { Write-Error $_.Exception.Message break } } |