Citrix Virtual Apps and Desktops SDK

New-AcctIdentityPool

Creates a new identity pool.

Syntax

New-AcctIdentityPool
   -IdentityPoolName <String>
   [-NamingScheme <String>]
   [-NamingSchemeType <ADIdentityNamingScheme>]
   [-OU <String>]
   [-Domain <String>]
   [-AllowUnicode]
   [-IdentityType <String>]
   [-DeviceManagementType <String>]
   [-StartCount <Int32>]
   [-Scope <String[]>]
   [-TenantId <Guid>]
   [-ZoneUid <Guid>]
   [-AzureADSecurityGroupName <String>]
   [-AzureADAccessToken <String>]
   [-AzureADTenantId <Guid>]
   [-ServiceAccountUid <Guid[]>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
<!--NeedCopy-->
New-AcctIdentityPool
   -IdentityPoolName <String>
   [-NamingScheme <String>]
   [-NamingSchemeType <ADIdentityNamingScheme>]
   [-AllowUnicode]
   [-WorkgroupMachine]
   [-IdentityType <String>]
   [-DeviceManagementType <String>]
   [-StartCount <Int32>]
   [-Scope <String[]>]
   [-TenantId <Guid>]
   [-ZoneUid <Guid>]
   [-AzureADSecurityGroupName <String>]
   [-AzureADAccessToken <String>]
   [-AzureADTenantId <Guid>]
   [-ServiceAccountUid <Guid[]>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
<!--NeedCopy-->

Description

Provides the ability to create identity pools that can be used to store AD computer accounts.

The naming scheme, naming scheme type, and domain must be specified if the identity pool is to be used to create new accounts.

Each identity pool is tied to a single domain. All the identities in an identity pool belong to the same domain. If the domain is not specified by a parameter to this command the domain will be set when an account is imported into it.

Examples

EXAMPLE 1

Create a new identity pool from which accounts can be created in the domain called “MyDomain.com” using a numeric scheme of the format Acc####. The first account created from this identity pool will be named Acc0001 and placed in the OU named “MyOU”.

New AD accounts can be imported into this pool too, but must be from the Domain “MyDomain.com”.

New-AcctIdentityPool -IdentityPoolName MyPool -NamingScheme Acc#### -Domain MyDomain.com -NamingSchemeType Numeric -OU "CN=MyOU,DC=MyDomain,DC=com"


AvailableAccounts    : 0
DeviceManagementType : None
Domain               : MyDomain.com
ErrorAccounts        : 0
IdentityContent      :
IdentityPoolName     : MyPool
IdentityPoolUid      : 22072d9e-6a8f-494b-a5bc-2ef18ca4b915
IdentityType         : ActiveDirectory
InUseAccounts        : 0
Lock                 : False
MetadataMap          : {}
NamingScheme         : Acc####
NamingSchemeType     : Numeric
OU                   : CN=MyOU,DC=MyDomain,DC=com
ResourceLocationId   :
StartCount           : 1
TaintedAccounts      : 0
WorkgroupMachine     : False
ZoneUid              :
Scopes               :
TenantId             :
<!--NeedCopy-->

EXAMPLE 2

Create a new identity pool named “MyWorkgroupPool” where accounts are created as workgroup machines rather than part of a domain. Note that the OU and Domain parameters must be unused.

New-AcctIdentityPool -WorkgroupMachine -IdentityPoolName MyWorkgroupPool -NamingScheme Acc####  -NamingSchemeType Numeric


AvailableAccounts    : 0
DeviceManagementType : None
Domain               :
ErrorAccounts        : 0
IdentityContent      :
IdentityPoolName     : MyWorkgroupPool
IdentityPoolUid      : f4aef7af-4298-44a3-a5fb-4a9201ca01d7
IdentityType         : Workgroup
InUseAccounts        : 0
Lock                 : False
MetadataMap          : {}
NamingScheme         : Acc####
NamingSchemeType     : Numeric
OU                   :
ResourceLocationId   :
StartCount           : 1
TaintedAccounts      : 0
WorkgroupMachine     : True
ZoneUid              :
Scopes               : {}
TenantId             :
<!--NeedCopy-->

EXAMPLE 3

Create a new identity pool named “AzureADIdentityPool” using the AzureAD identity type. Accounts created in this pool are joined to Azure Active Directory, and Microsoft Intune is used for device management.

New-AcctIdentityPool -IdentityPoolName AzureADIdentityPool -DeviceManagementType Intune -IdentityType AzureAD -NamingScheme AzureAD-### -NamingSchemeType Numeric -WorkgroupMachine

AvailableAccounts    : 0
DeviceManagementType : Intune
Domain               :
ErrorAccounts        : 0
IdentityContent      :
IdentityPoolName     : AzureADIdentityPool
IdentityPoolUid      : a0208d3f-7467-4cec-b6cb-b3e14560e1e7
IdentityType         : AzureAD
InUseAccounts        : 0
Lock                 : False
MetadataMap          : {}
NamingScheme         : AzureAD-###
NamingSchemeType     : Numeric
OU                   :
ResourceLocationId   :
StartCount           : 1
TaintedAccounts      : 0
WorkgroupMachine     : True
ZoneUid              :
Scopes               : {}
TenantId             :
<!--NeedCopy-->

EXAMPLE 4

Create a new identity pool named “HybridAzureADIdentityPool” using the HybridAzureAD identity type. Accounts created in this pool are joined to both the domain “IZONE.CLOUD” and Azure Active Directory.

New-AcctIdentityPool -IdentityPoolName HybridAzureADIdentityPool -IdentityType HybridAzureAD -NamingScheme HAAD-### -NamingSchemeType Numeric -Domain izone.cloud -OU "CN=Computers,DC=izone,DC=cloud"

AvailableAccounts    : 0
DeviceManagementType : None
Domain               : IZONE.CLOUD
ErrorAccounts        : 0
IdentityContent      :
IdentityPoolName     : HybridAzureADIdentityPool
IdentityPoolUid      : d08ffd26-6600-46d9-b649-786f201082b3
IdentityType         : HybridAzureAD
InUseAccounts        : 0
Lock                 : False
MetadataMap          : {}
NamingScheme         : HAAD-###
NamingSchemeType     : Numeric
OU                   : CN=Computers,DC=izone,DC=cloud
ResourceLocationId   :
StartCount           : 1
TaintedAccounts      : 0
WorkgroupMachine     : False
ZoneUid              :
Scopes               : {}
TenantId             :
<!--NeedCopy-->

Parameters

-IdentityPoolName

The name of the identity pool. This must not contain any of the following characters \/;:#.*?=<>|[]()””’

Type: String
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False
Length range: 1 to 64
Disallowed characters: \/;:#.*?=<>\|[]()"'

-WorkgroupMachine

Indicates whether the accounts created should be part of a workgroup rather than a domain.

Type: SwitchParameter
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-NamingScheme

Defines the template name for AD accounts created in the identity pool. The scheme can consist of fixed characters and a variable part defined by ‘#’ characters. There can be only one variable region defined. The number of ‘#’ characters defines the minimum length of the variable region. For example, a naming scheme of H#### could create accounts called H0001, H0002 (for a numeric scheme type) or HAAAA, HAAAB (for an alphabetic type).

Citrix recommends that you define a naming scheme that will not clash with accounts which already exist in AD; account creation will fail if a clash occurs.

There are restrictions on what constitutes a valid computer name:

Minimum name length: 2 (DNS)

Maximum name length: 15 bytes (NetBIOS)

The following characters are not allowed in a computer name:

backslash (\)

slash mark (/)

colon (:)

asterisk (*)

question mark (?)

quotation mark (“)

less than sign (<)

greater than sign (>)

vertical bar (|)

comma (,)

tilde (~)

exclamation point (!)

at sign (@)

number sign (#)

dollar sign ($)

percent (%)

caret (^)

ampersand (&)

apostrophe (‘)

parenthesis (())

braces ({})

underscore (_)

The following names are reserved and must not be used at the end of the naming scheme:

-GATEWAY

-GW

-TAC

Names must not start with a period (NetBIOS).

Names must not be composed entirely of numbers (NetBIOS).

Names must not contain a blank or space characters (DNS).

Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Length range: 2 to 15

-NamingSchemeType

The type of naming scheme. This can be Numeric or Alphabetic. This defines the format of the variable part of the AD account names that will be created.

Type: ADIdentityNamingScheme
Accepted values: None, Alphabetic, Numeric
Position: Named
Default value: Numeric
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-AllowUnicode

Allow the naming scheme to have characters other than alphanumeric characters.

Type: SwitchParameter
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-IdentityType

The type of identity type. This can be ActiveDirectory, AzureAD, HybridAzureAD, or Workgroup.

Type: String
Accepted values: ActiveDirectory, Workgroup, HybridAzureAD, AzureAD
Position: Named
Default value: ActiveDirectory
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Introduced in: Citrix Virtual Apps and Desktop 7 2206

-DeviceManagementType

The type of device management type. This can be Intune, IntuneWithCitrixTags, IntuneWithSCCM, or None.

Type: String
Accepted values: None, Intune, IntuneWithCitrixTags, IntuneWithSCCM
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Introduced in: Citrix Virtual Apps and Desktop 7 2206

-StartCount

Specifies the next number to be used when creating new AD accounts in the identity pool.

Type: Int32
Position: Named
Default value: 1
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-Scope

The administration scopes to be applied to the new identity pool.

Type: String[]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-TenantId

Specifies identity of tenant associated with identity pool. Must always be specified in multitenant sites, must not be specified otherwise.

Type: Guid
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-ZoneUid

The UID that corresponds to the Zone in which these AD accounts will be created. This is only intended to be used for Citrix Cloud Delivery Controllers.

Type: Guid
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-AzureADSecurityGroupName

The name of AzureAD security group. This is only intended to be used when IdentityType is “AzureAD” or “HybridAzureAD”.

Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Length range: 1 to 64
Disallowed characters: \/;:#.*?=<>\|[]()"'
Introduced in: Citrix Virtual Apps and Desktop 7 2206

-AzureADAccessToken

The access token of Microsoft Graph API. Must be specified if “AzureADSecurityGroupName” is specified to create Azure AD security group, and IdentityType is “AzureAD” or “HybridAzureAD”.

Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Introduced in: Citrix Virtual Apps and Desktop 7 2206

-AzureADTenantId

The tenantId of AzureAD. Must be specified if “AzureADSecurityGroupName” is specified to create Azure AD security group, and IdentityType is “AzureAD” or “HybridAzureAD”.

Type: Guid
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Introduced in: Citrix Virtual Apps and Desktop 7 2206

-ServiceAccountUid

Specify the UID of the service account that associates with the identity pool.

Type: Guid[]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Introduced in: Citrix Virtual Apps and Desktop 7 2308

-LoggingId

Specifies the identifier of the high-level operation this cmdlet call forms a part of. Citrix Studio and Director typically create high-level operations. PowerShell scripts can also wrap a series of cmdlet calls in a high-level operation by way of the Start-LogHighLevelOperation and Stop-LogHighLevelOperation cmdlets.

Type: Guid
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-OU

The OU that computer accounts will be created in. If this is not specified, accounts are created into the default account container specified by AD. This is the ‘Computers’ container for out-of-the-box installations of AD. The OU must be a valid AD container of the domain specified for the pool.

Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Length range: 0 to 2048

-Domain

The AD domain name for the pool. Specify this in FQDN format; for example, MyDomain.com.

Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Length range: 2 to 255

CitrixCommonParameters

This cmdlet supports the common Citrix parameters: -AdminAddress, -AdminClientIP, -BearerToken, -TraceParent, -TraceState and -VirtualSiteId. For more information, see about_CitrixCommonParameters.

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

None

You can’t pipe objects to this cmdlet.

Outputs

Citrix.ADIdentity.Sdk.IdentityPool

This object provides details of the identity pool and contains the following information:

AvailableAccounts <int>

The number of existing accounts (AcctADAccount objects) in the ‘Available’ state (not in ‘InUse’, ‘Tainted’, or ‘Error’).

DeviceManagementType <string>

The device management type. Can be Intune, IntuneWithCitrixTags, IntuneWithSCCM, or None by default.

Domain <string>

The Active Directory domain (in FQDN format) that accounts in the pool belong to.

ErrorAccounts <int>

The number of existing AD accounts in the ‘Error’ state.

IdentityContent <string>

JSON formatted metadata containing Azure AD tenant and Azure AD security group information associated with this identity pool.

IdentityPoolName <string>

The name of the identity pool.

IdentityPoolUid <GUID>

The unique identifier for the identity pool.

IdentityType <string>

The identity type.

InUseAccounts <int>

The number of existing AD accounts in the ‘InUse’ state.

Lock <bool>

Indicates if the identity pool is locked.

MetadataMap <IDictionary[string, string];>

The metadata associated with this identity pool arranged in key value pairs.

NamingScheme <string>

The naming scheme for the identity pool.

NamingSchemeType <string>

The naming scheme type for the identity pool. This can be one of the following:

Numeric - naming scheme uses numeric indexes

Alphabetic - naming scheme uses alphabetic indexes

OU <string>

The Active Directory distinguished name for the OU in which accounts for this identity pool will be created.

ResourceLocationId <GUID>

The UID that corresponds to the resource location (DaaS only).

StartCount <int>

The next index to be used when creating an account in the identity pool.

TaintedAccounts <int>

The number of existing AD accounts in the ‘Tainted’ state.

WorkgroupMachine <bool>

If this is true, the identity pool can have an IdentityType of ‘AzureAD’ or ‘Workgroup’.

If this is false, the identity pool can have an IdentityType of ‘ActiveDirectory’ or ‘HybridAzureAD’.

ZoneUid <GUID>

The UID that corresponds to the Zone in which AD accounts are created.

Scopes <Citrix.ADIdentity.Sdk.ScopeReference[]>

The administration scopes associated with this identity pool.

TenantId <GUID>

Identity of the Citrix tenant associated with this identity pool.

Not applicable (always blank) in non-multitenant sites.

Notes

In the case of failure, the following errors can result.

Error Codes


UnableToConvertDomainName

Unable to convert domain name to DNS format.

NamingSchemeNotEnoughCharacters

Naming scheme does not have enough characters specified.

NamingSchemeTooManyCharacters

Naming scheme has too many characters specified.

NamingSchemeIllegalCharacter

Naming scheme contains illegal characters.

NamingSchemeMayNotStartWithPeriod

Naming scheme starts with a period (.) character.

NamingSchemeMayNotBeAllNumbers

Naming scheme contains only numbers.

NamingSchemeMissingNumericSpecifications

Naming scheme does not contain any variable specification (i.e. no ‘#’ characters are specified).

NamingSchemeHasMoreThanOneSetOfHashes

Naming scheme has more than one variable region (i.e. there are ‘#’ characters separated by other characters).

IdentityPoolDuplicateObjectExists

An identity pool with the same name already exists.

IdentityPoolOUInvalid

Identity pool OU invalid as it does not exist.

IdentityPoolOUOfWrongDomain

Identity pool OU invalid as it refers to a different domain to the domain specified for the pool.

InvalidIdentityPoolParameterCombination

Caused by either of the following validation errors:

  • If an OU is specified then a domain must also be specified.
  • NamingScheme, NamingSchemeType and Domain must all be present if any of these are specified.

OUNotReachable

Domain is not reachable. Check if the domain exists in any zones and if the domain contains the specified OU.

OUParameterRequiresDomain

If an OU is specified then a domain must also be specified.

NamingSchemeAndNamingSchemeTypeMustBeUsedTogether

NamingScheme and NamingSchemeType must be used together.

NamingSchemeIllegalComputerName

The naming scheme supplied is not valid.

PermissionDenied

The user does not have administrative rights to perform this operation.

ConfigurationLoggingError

The operation could not be performed because of a configuration logging error

DatabaseError

An error occurred in the service while attempting a database operation.

DatabaseNotConfigured

The operation could not be completed because the database for the service is not configured.

ServiceStatusInvalidDb

An error occurred in the service while attempting a database operation - communication with the database failed for various reasons.

CommunicationError

An error occurred while communicating with the service.

AzureADAccessTokenMustBeSpecified

Must specify “AzureADAccessToken” parameter to operate AzureAD security group.

AzureADSecurityGroupNotSupportCurrentIdentityType

Current IdentityType not support AzureAD security group.

AzureADSecurityGroupMustBeSpecified

Must specify AzureAD security group.

AzureADTenantIdMustBeSpecified

AzureAD TenantId must be specified.

AzureADTenantIdInIdentityContentMismatchAzureADAccessToken

The TenantId extracted from AccessToken must be the same as specified TenantId in IdentityContent.

AzureADTenantIdMismatchAzureADAccessToken

The given AzureADTenantId mismatchs TenantId contained in AzureAD AccessToken.

CurrentIdentityTypeRequiresWorkgroupMachine

Current IdentityType requires WorkgroupMachine.

DomainNotRequiredForAzureADAndWorkgroup

Domain not required for AzureAD and Workgroup.

FailedToCreateAzureADSecurityGroup

An error occured in the service while creating AzureAD security group.

FailedToDeleteAzureADSecurityGroup

An error occured in the service while deleting AzureAD security group.

NamingSchemeAndDomainMustBeUsedTogetherForActiveDirectoryOrHybridAzureAD

NamingScheme and Domain must be used together for ActiveDirectory or HybridAzureAD.

NewAzureADSecurityGroupWithoutFailureButNoGroupResultReturned

No result returned when create AzureAD security group though doesn’t get error when execute cmdlet.

IntuneEnrollRequiresAzureADJoinedOrHybridAzureADJoined

Intune enroll requires AzureAD Joined or Hybrid AzureAD Joined.

ExceptionThrown

An unexpected error occurred. To locate more details, see the Windows event logs on the controller being used or examine the Citrix Virtual Apps and Desktops logs.

New-AcctIdentityPool