Public/Get-UnityUser.ps1
Function Get-UnityUser { <# .SYNOPSIS Information about local users, including their roles, and how they are authenticated. .DESCRIPTION Information about local users, including their roles, and how they are authenticated. You need to have an active session with the array. .NOTES Written by Erwan Quelin under MIT licence - https://github.com/equelin/Unity-Powershell/blob/master/LICENSE .LINK https://github.com/equelin/Unity-Powershell .PARAMETER Session Specifies an UnitySession Object. .PARAMETER Name Specifies the object name. .PARAMETER ID Specifies the object ID. .EXAMPLE Get-UnityUser Retrieve informations about all the local users .EXAMPLE Get-UnityUser -Name 'administrator' Retrieves informations about the local user named 'administrator' #> [CmdletBinding(DefaultParameterSetName="Name")] Param ( [Parameter(Mandatory = $false,HelpMessage = 'EMC Unity Session')] $session = ($global:DefaultUnitySession | where-object {$_.IsConnected -eq $true}), [Parameter(Mandatory = $false,ParameterSetName="Name",ValueFromPipeline=$True,ValueFromPipelinebyPropertyName=$True,HelpMessage = 'User Name')] [String[]]$Name, [Parameter(Mandatory = $false,ParameterSetName="ID",ValueFromPipeline=$True,ValueFromPipelinebyPropertyName=$True,HelpMessage = 'User ID')] [String[]]$ID ) Begin { Write-Debug -Message "[$($MyInvocation.MyCommand)] Executing function" #Initialazing variables $URI = '/api/types/user/instances' #URI for the ressource (example: /api/types/lun/instances) $TypeName = 'UnityUser' } Process { Foreach ($sess in $session) { Write-Debug -Message "[$($MyInvocation.MyCommand)] Processing Session: $($Session.Server) with SessionId: $($Session.SessionId)" Get-UnityItemByKey -Session $Sess -URI $URI -Typename $Typename -Key $PsCmdlet.ParameterSetName -Value $PSBoundParameters[$PsCmdlet.ParameterSetName] } # End Foreach ($sess in $session) } # End Process } # End Function |