Public/Get-midPointUser.ps1
|
function Get-midPointUser { <# .SYNOPSIS Gets midPoint users. .DESCRIPTION Gets users by name, by OID, by an Axiom query filter, or all users. -Name returns nothing when no user has that name; -Oid stops with an error when the OID does not exist. The full midPoint object is in the Raw property of each result. .PARAMETER Name The exact user name. .PARAMETER Oid The user's OID. .PARAMETER Filter An Axiom query filter, e.g. 'givenName = "Jack"' or 'name startsWith "MPTEST-"'. .PARAMETER All Returns all users. Combine with -MaxResults on large systems. .PARAMETER MaxResults The maximum number of users returned by -Filter or -All. .PARAMETER ResolveNames Asks midPoint to add the names of referenced objects (roles, orgs) to the Raw object. .EXAMPLE Get-midPointUser jack .EXAMPLE Get-midPointUser -Filter 'name startsWith "MPTEST-"' | Remove-midPointUser -Confirm:$false #> [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'All', Justification = 'Selects the parameter set.')] [CmdletBinding(DefaultParameterSetName = 'Name')] [OutputType('midPointTools.User')] param( [Parameter(Mandatory, Position = 0, ParameterSetName = 'Name', ValueFromPipeline)] [string[]] $Name, [Parameter(Mandatory, ParameterSetName = 'Oid', ValueFromPipelineByPropertyName)] [string[]] $Oid, [Parameter(Mandatory, ParameterSetName = 'Filter')] [string] $Filter, [Parameter(Mandatory, ParameterSetName = 'All')] [switch] $All, [Parameter(ParameterSetName = 'Filter')] [Parameter(ParameterSetName = 'All')] [int] $MaxResults, [switch] $ResolveNames ) process { $options = if ($ResolveNames) { @('resolveNames') } else { @() } switch ($PSCmdlet.ParameterSetName) { 'Name' { foreach ($n in $Name) { Find-midPointObject -Type users -Filter ('name = {0}' -f (ConvertTo-midPointAxiomString $n)) -Options $options | ConvertTo-midPointUserObject } } 'Oid' { foreach ($o in $Oid) { Get-midPointObjectByOid -Type users -Oid $o -Options $options | ConvertTo-midPointUserObject } } 'Filter' { Find-midPointObject -Type users -Filter $Filter -MaxResults $MaxResults -Options $options | ConvertTo-midPointUserObject } 'All' { Find-midPointObject -Type users -MaxResults $MaxResults -Options $options | ConvertTo-midPointUserObject } } } } |