Public/Api/Get-Identity.ps1

function Get-Identity {

    <#
        .SYNOPSIS
            Returns detail of requested identity.

        .PARAMETER CollectionUri
            Url for project collection on Azure DevOps server instance.
            If not specified, $global:AzureDevOpsApi_CollectionUri (set by Set-AzureDevopsVariables) is used.

        .PARAMETER User
            User name od identifier to get the identity for.
    #>


    [CmdletBinding()]
    param(
        [AllowNull()]
        [AllowEmptyString()]
        [Alias('Uri')]
        $CollectionUri,

        [Parameter(Mandatory, ValueFromPipeline, Position = 0)]
        $User
    )

    process {

        # Get connection object from Collection URI
        $connection = Get-ApiCollectionConnection `
            -Uri $CollectionUri

        # Process all requested identitties
        foreach ($item in $User) {

            $identityId = $null

            # if actually given identity ID, parse it
            if ($item -is [guid]) {
                $identityId = $item.ToString('D')
            } else {
                $tmp = [guid]::Empty;
                if ([guid]::TryParse($item, [ref] $tmp)) {
                    $identityId = $tmp.ToString('D')
                }
            }

            # try to find the identity
            if ($identityId) {
                # GET https://dev-tfs/tfs/{collection}/_apis/identities
                # ?identityIds=81fa638908726fdda4517ba7880f566a,7c86b535818b423fb0fd19a2e9f32710
                # &queryMembership=None&api-version=6.0
                $uri = Join-Uri `
                    -Base $connection.CollectionUri `
                    -Relative "_apis/identities?queryMembership=None&identityIds=$($identityId)" `
                    -NoTrailingSlash
            } else {
                # GET https://dev-tfs/tfs/{collection}/_apis/identities
                # ?searchFilter=General&queryMembership=None&filterValue={user}&api-version=5.0
                $uri = Join-Uri `
                    -Base $connection.CollectionUri `
                    -Relative "_apis/identities?queryMembership=None&searchFilter=General&filterValue=$($item)" `
                    -NoTrailingSlash
            }

            # Make the call
            Invoke-ApiListPaged `
                -ApiCredential $connection.ApiCredential `
                -ApiVersion $connection.ApiVersion `
                -Uri $uri
        }
    }
}