Download full document:

# Group-BrokerDesktop

Groups and counts desktops with the same value for a specified property.

Syntax

Group-BrokerDesktop [-Uid] <Int32> -Property <String> [-AdminAddress <String>] [<CommonParameters>]

Group-BrokerDesktop -Property <String> [[-MachineName] <String>] [-AgentVersion <String>] [-ApplicationInUse <String>] [-AssignedClientName <String>] [-AssignedIPAddress <String>] [-AssociatedUserFullName <String>] [-AssociatedUserName <String>] [-AssociatedUserUPN <String>] [-AutonomouslyBrokered <Boolean>] [-CatalogName <String>] [-CatalogUid <Int32>] [-ClientAddress <String>] [-ClientName <String>] [-ClientVersion <String>] [-ColorDepth <ColorDepth>] [-ConnectedViaHostName <String>] [-ConnectedViaIP <String>] [-ControllerDNSName <String>] [-DeliveryType <DeliveryType>] [-Description <String>] [-DesktopCondition <String>] [-DesktopGroupName <String>] [-DesktopGroupUid <Int32>] [-DesktopKind <DesktopKind>] [-DeviceId <String>] [-DNSName <String>] [-FunctionalLevel <FunctionalLevel>] [-HardwareId <String>] [-HostedMachineId <String>] [-HostedMachineName <String>] [-HostingServerName <String>] [-HypervisorConnectionName <String>] [-HypervisorConnectionUid <Int32>] [-IconUid <Int32>] [-ImageOutOfDate <Boolean>] [-InMaintenanceMode <Boolean>] [-IPAddress <String>] [-IsAssigned <Boolean>] [-IsPhysical <Boolean>] [-LastConnectionFailure <ConnectionFailureReason>] [-LastConnectionTime <DateTime>] [-LastConnectionUser <String>] [-LastDeregistrationReason <DeregistrationReason>] [-LastDeregistrationTime <DateTime>] [-LastErrorReason <String>] [-LastErrorTime <DateTime>] [-LastHostingUpdateTime <DateTime>] [-LaunchedViaHostName <String>] [-LaunchedViaIP <String>] [-MachineInternalState <MachineInternalState>] [-MachineUid <Int32>] [-OSType <String>] [-OSVersion <String>] [-PersistUserChanges <PersistUserChanges>] [-PowerActionPending <Boolean>] [-PowerState <PowerState>] [-Protocol <String>] [-ProvisioningType <ProvisioningType>] [-PublishedApplication <String>] [-PublishedName <String>] [-PvdStage <PvdStage>] [-RegistrationState <RegistrationState>] [-SecureIcaActive <Boolean>] [-SecureIcaRequired <Boolean>] [-SessionHidden <Boolean>] [-SessionId <Int32>] [-SessionState <SessionState>] [-SessionStateChangeTime <DateTime>] [-SessionUid <Int64>] [-SessionUserName <String>] [-SessionUserSID <String>] [-SID <String>] [-SmartAccessTag <String>] [-StartTime <DateTime>] [-SummaryState <DesktopSummaryState>] [-Tag <String>] [-WillShutdownAfterUse <Boolean>] [-ApplicationUid <Int32>] [-ReturnTotalRecordCount] [-MaxRecordCount <Int32>] [-Skip <Int32>] [-SortBy <String>] [-Filter <String>] [-AdminAddress <String>] [<CommonParameters>]

Detailed Description

This cmdlet is now deprecated, please use Group-BrokerMachine.

Filters desktops using the specified criteria, then groups and counts matching desktops with the same value for a particular property. The number of desktops in the group, and the property value for the group, is output. For example:

C:\PS> Group-BrokerDesktop -Property SummaryState

Count Name


43 Available 17 InUse 3 Disconnected

Filtering supports the same options as the Get-BrokerDesktop cmdlet, and allows filtering on both desktop and session properties.

Group-BrokerDesktop is similar to the standard PowerShell Group-Object, but is faster than piping the output of Get-BrokerDesktop into Group-Object when working with many desktops.

Note that all session information properties for multi-session desktops is always $null, this means that is is not possible to group these desktops by session information using this command. Use Get-BrokerSession to get information on all current sessions.

Also note that the MaxRecordCount, ReturnTotalRecordCount, Skip, and SortBy parameters apply to GroupInfo records output rather than the filtered desktops.

Parameters

Name Description Required? Pipeline Input Default Value
Uid Gets desktops with a specific UID. true false
Property Selects the property by which matching desktops are grouped. true false
MachineName Gets desktops with a specific machine name (in the form 'domain\machine'). false false
AgentVersion Gets desktops with a specific Citrix Virtual Delivery Agent version. false false
ApplicationInUse Gets desktops running a specified published application (identified by browser name).
String comparisons are case-insensitive.
false false
AssignedClientName Gets desktops assigned to a specific client name. false false
AssignedIPAddress Gets desktops assigned to a specific IP address.q false false
AssociatedUserFullName Gets desktops with an associated user identified by their full name (usually in the form 'first-name last-name').
Associated users are the current user for shared desktops, and the assigned users for private desktops.
false false
AssociatedUserName Gets desktops with an associated user identified by their user name (in the form 'domain\user').
Associated users are the current user for shared desktops, and the assigned users for private desktops.
false false
AssociatedUserUPN Gets desktops with an associated user identified by their User Principle Name (in the form 'user@domain').
Associated users are the current user for shared desktops, and the assigned users for private desktops.
false false
AutonomouslyBrokered Gets desktops according to whether their current session is autonomously brokered or not. Autonomously brokered sessions are HDX sessions established by direct connection without being brokered.
Session properties are always null for multi-session desktops.
false false
CatalogName Gets desktops from the catalog with the specific name. false false
CatalogUid Gets desktops from a catalog with a specific UID. false false
ClientAddress Gets desktops with a specific client IP address. false false
ClientName Gets desktops with a specific client name. false false
ClientVersion Gets desktops with a specific client version. false false
ColorDepth Gets desktops configured with a specific color depth.
Valid values are FourBit, EightBit, SixteenBit, and TwentyFourBit.
false false
ConnectedViaHostName Gets desktops with a specific host name of the incoming connection. This is usually a proxy or Citrix Access Gateway server. false false
ConnectedViaIP Gets desktops with a specific IP address of the incoming connection. false false
ControllerDNSName Gets desktops with a specific DNS name of the controller they are registered with. false false
DeliveryType Gets desktops of a particular delivery type.
Valid values are AppsOnly, DesktopsOnly, DesktopsAndApps
false false
Description Get desktops with a specific description. false false
DesktopCondition Gets desktop with an outstanding desktop condition condition.
Valid values are:
o CPU: Indicates the machine has high CPU usage
o ICALatency: Indicates the network latency is high
o UPMLogonTime: Indicates that the profile load time was high
false false
DesktopGroupName Gets desktops from a desktop group with the specified name. false false
DesktopGroupUid Gets desktops from a desktop group with the specified UID. false false
DesktopKind Deprecated: Use AllocationType parameter.
Gets desktops of a particular kind.
Valid values are Private, Shared.
false false
DeviceId Gets desktops with a specific client device ID. false false
DNSName Get desktops with a specific DNS name. false false
FunctionalLevel Gets desktops with a specific FunctionalLevel.
Valid values are L5, L7, L7_6
false false
HardwareId Gets desktops with a specific client hardware ID. false false
HostedMachineId Gets desktops with a specific machine ID known to the hypervisor. false false
HostedMachineName Gets desktops with a specific machine name known to the hypervisor. false false
HostingServerName Gets desktops with a specific name of the hosting hypervisor server. false false
HypervisorConnectionName Gets desktops with a specific name of the hosting hypervisor connection. false false
HypervisorConnectionUid Gets desktops with a specific UID of the hosting hypervisor connection. false false
IconUid Gets desktops with a specific configured icon. Note that desktops with a null IconUid use the icon of the desktop group. false false
ImageOutOfDate Gets desktops if they have an ImageOutOfDate flag. false false
InMaintenanceMode Gets desktops with a specific InMaintenanceMode setting. false false
IPAddress Gets desktops with a specific IP address. false false
IsAssigned Gets desktops according to whether they are assigned or not. Desktops may be assigned to one or more users or groups, a client IP address or a client endpoint name. false false
IsPhysical Specifies if machines in the catalog can be power managed by the Citrix Broker Service. Where the power state of the machine cannot be controlled, specify $true, otherwise $false. Can only be specified together with a provisioning type of Pvs or Manual, or if used with the deprecated CatalogKind parameter only with Pvs or PvsPvd catalog kinds. false false
LastConnectionFailure Gets desktops with a specific reason for the last recorded connection failure. This value is None if the last connection was successful or if there has been no attempt to connect to the desktop yet.
Valid values are None, SessionPreparation, RegistrationTimeout, ConnectionTimeout, Licensing, Ticketing, and Other.
false false
LastConnectionTime Gets desktops that last connected at a specific time. This is the time that the broker detected that the connection attempt either succeeded or failed. false false
LastConnectionUser Gets desktops where a specific user name last attempted a connection (in the form 'domain\user'). false false
LastDeregistrationReason Gets desktops whose broker last recorded a specific deregistration reason.
Valid values are $null, AgentShutdown, AgentSuspended, AgentRequested, IncompatibleVersion, AgentAddressResolutionFailed, AgentNotContactable, AgentWrongActiveDirectoryOU, EmptyRegistrationRequest, MissingRegistrationCapabilities, MissingAgentVersion, InconsistentRegistrationCapabilities, NotLicensedForFeature, UnsupportedCredentialSecurityVersion, InvalidRegistrationRequest, SingleMultiSessionMismatch, FunctionalLevelTooLowForCatalog, FunctionalLevelTooLowForDesktopGroup, PowerOff, DesktopRestart, DesktopRemoved, AgentRejectedSettingsUpdate, SendSettingsFailure, SessionAuditFailure, SessionPrepareFailure, ContactLost, SettingsCreationFailure, UnknownError and BrokerRegistrationLimitReached.
false false
LastDeregistrationTime Gets desktops that were last deregistered by a specific time. false false
LastErrorReason Gets desktops with the specified last error reason. false false
LastErrorTime Gets desktops with the specified last error time. false false
LastHostingUpdateTime Gets desktops with a specific time that the hosting information was last updated. false false
LaunchedViaHostName Gets desktops with a specific host name of the StoreFront server from which the user launched the session.
Session properties are always null for multi-session desktops.
false false
LaunchedViaIP Gets desktops with a specific IP address of the StoreFront server from which the user launched the session.
Session properties are always null for multi-session desktops.
false false
MachineInternalState Gets desktops with the specified internal machine state. false false
MachineUid Gets desktops with a specific machine UID. false false
OSType Gets desktops by the type of operating system they are running. false false
OSVersion Gets desktops by the version of the operating system they are running. false false
PersistUserChanges Gets desktops by the location where the user changes are persisted.
o OnLocal - User changes are persisted locally.
o Discard - User changes are discarded.
o OnPvd - User changes are persisted on the Pvd.
false false
PowerActionPending Gets desktops with a specific power action pending state.
Valid values are $true or $false.
false false
PowerState Gets desktops with a specific power state.
Valid values are Unmanaged, Unknown, Unavailable, Off, On, Suspended, TurningOn, TurningOff, Suspending, and Resuming.
false false
Protocol Gets desktops with connections using a specific protocol, for example HDX, RDP, or Console. false false
ProvisioningType Specifies the provisioning type for the catalog. Values can be:
o Manual - No provisioning.
o PVS - Machine provisioned by PVS (machine may be physical, blade, VM,...).
o MCS - Machine provisioned by MCS (machine must be VM).
false false
PublishedApplication Gets desktops with a specific application published on them (identified by its browser name). false false
PublishedName Gets desktops with a specific published name. false false
PvdStage Gets machines with a specific personal vDisk stage.
Valid values are None, Requested, Starting, Working and Failed.
false false
RegistrationState Gets desktops with a specific registration state.
Valid values are Unregistered, Initializing, Registered and AgentError.
false false
SecureIcaActive Gets desktops depending on whether the current session uses SecureICA or not.
Session properties are always null for multi-session desktops.
false false
SecureIcaRequired Gets desktops configured with a particular SecureIcaRequired setting. Note that the desktop setting of $null indicates that the desktop group value is used.
Session properties are always null for multi-session desktops.
false false
SessionHidden Gets desktops by whether their sessions are hidden or not. Hidden sessions are treated as though they do not exist when launching sessions; a hidden session cannot be reconnected to, but a new session may be launched using the same entitlement.
Session properties are always null for multi-session desktops.
false false
SessionId Deprecated.
Gets desktops by session ID, a unique identifier that Remote Desktop Services uses to track the session but it is only unique on that machine.
false false
SessionState Gets desktops with a specific session state.
Valid values are $null, Other, PreparingSession, Connected, Active, Disconnected, Reconnecting, NonBrokeredSession, and Unknown.
Session properties are always null for multi-session desktops.
false false
SessionStateChangeTime Gets desktops whose sessions last changed state at a specific time.
Session properties are always null for multi-session desktops.
false false
SessionUid Gets desktops with a specific session UID ($null for no session).
Session properties are always null for multi-session desktops.
false false
SessionUserName Gets desktops with a specific user name for the current session (in the form 'domain\user').
Session properties are always null for multi-session desktops.
false false
SessionUserSID Gets desktops with a specific SID of the current session user.
Session properties are always null for multi-session desktops.
false false
SID Gets desktops with a specific machine SID. false false
SmartAccessTag Gets desktops where the session has the specific SmartAccess tag.
Session properties are always null for multi-session desktops.
false false
StartTime Gets desktops with a specific session start time.
Session properties are always null for multi-session desktops.
false false
SummaryState Gets desktops with a specific summary state.
Valid values are Off, Unregistered, Available, Disconnected, and InUse.
false false
Tag Gets desktops with a specific tag. false false
WillShutdownAfterUse Gets desktops depending on whether they shut down after use or not. false false
ApplicationUid Gets desktops with a specific published application (identified by its UID). false false
ReturnTotalRecordCount When specified, this causes the cmdlet to output an error record containing the number of records available. This error record is additional information and does not affect the objects written to the output pipeline. See about_Broker_Filtering for details. false false False
MaxRecordCount Specifies the maximum number of records to return. false false 250
Skip Skips the specified number of records before returning results. Also reduces the count returned by -ReturnTotalRecordCount. false false 0
SortBy Sorts the results by the specified list of properties. The list is a set of property names separated by commas, semi-colons, or spaces. Optionally, prefix each name with a + or - to indicate ascending or descending order. Ascending order is assumed if no prefix is present. false false The default sort order is by name or unique identifier.
Filter Gets records that match a PowerShell style filter expression. See about_Broker_Filtering for details. false false
AdminAddress Specifies the address of a XenDesktop controller that the PowerShell snapin will connect to. This can be provided as a host name or an IP address. false false Localhost. Once a value is provided by any cmdlet, this value will become the default.

Input Type

None

You cannot pipe input into this cmdlet.

Return Values

Citrix.Broker.Admin.SDK.GroupInfo

Each GroupInfo object represents one group, and contains the following properties:
-- Count: The count of desktops in this group.
-- Name: The value of the property the desktops were grouped by (as a string).
If you do not specify -SortBy, groups are sorted with the largest count first.## Notes To compare dates or times, use -Filter and relative comparisons. For more information, see about_Broker_Filtering and the examples.

Examples

EXAMPLE 1

C:\PS> Group-BrokerDesktop -Property SummaryState -DesktopGroupName dg1

Description
-----------
Group desktops from the dg1 group by summary state.

EXAMPLE 2

C:\PS> Group-BrokerDesktop -Property LastConnectionFailure -Filter { LastConnectionFailure -ne "None" -and LastConnectionTime -ge '-7' } -MaxRecordCount 1

Description
-----------
For desktops where the last connection attempt failed, list the most common reason for failure, ignoring connections that failed over a week ago.

EXAMPLE 3

C:\PS> Group-BrokerDesktop -Property HostingServerName -DesktopCondition ICALatency -SortBy Name

Description
-----------
List alphabetically the hypervisor servers hosting desktops that are currently experiencing high network latency.