Product Documentation

about_Broker_Applications

Oct 12, 2015

TOPIC

Citrix Broker SDK - Applications

SHORT DESCRIPTION

Describes how to publish and manage hosted applications.

LONG DESCRIPTION

Published applications allow your users to launch applications as if they were installed on their devices when in fact they are hosted remotely. The applications are normally launched in a seamless window, meaning that users see only the application window and not an additional desktop.

Published applications are hosted on either desktop operating systems or server operating systems. Applications are published to users and desktop groups. As such, conceptually they exist "on top" of desktop groups, which are themselves built on top of catalogs. See about_Broker_Concepts for more information on catalogs.

There are two types of applications:

 
    o   HostedOnDesktop - application runs on a remote machine and is displayed 
        on the local client desktop. 
    o   InstalledOnClient - application is installed and run on the local 
        client machine and has its window overlaid on to a remote desktop. 
 
   

HOSTING APPLICATIONS

There are three main ways of hosting an application: using a private single-session VDI desktop, a shared single-session VDI desktop, and on shared multi-session server operating systems.

An application hosted on a shared single-session VDI desktop, when launched, is hosted on a random machine within the desktop group. An application hosted on a private single-session VDI desktop ensures that when a user launches the application it is always hosted on the same machine. An application hosted on shared multi-session server operating systems ensures that when a user launches the application it is always hosted on one of the least loaded servers in the desktop group.

You control how the application is hosted based on the kind of desktop group that you choose. Shared desktop groups randomly select a machine, and these desktop groups can only be created from catalogs with a Random AllocationType. On the other hand, private desktop groups host the application on the same machine for that user every time, and these desktop group types can only be created from catalogs with a Permanent AllocationType.

USER ACCESS & ASSIGNMENT

Users are not assigned an application directly, but instead they are required to first have access to the desktop groups on which the applications are published through access policy rules.

With shared desktop groups, access to a published application also needs an application entitlement policy rule. An application entitlement policy rule defines the set of users who are allowed per-session access to desktops in a specified desktop group.

With private desktop groups, access to a published application also needs an application assignment policy rule. An application assignment policy rule defines the set of users who are allowed access to a single application session in a desktop group.

Users are assigned private machines in one of two ways: pre-assigned or assign-on-first-use. Pre-assigned means that individual user accounts have been specified for the machines within that desktop group. A single machine can only have a single user account (not a group account) assigned to it, and likewise a user can only be assigned a single machine within a desktop group.

Assign-on-first-use requires less configuration. Machines are assigned to users the first time they log on. Rather than allocating users directly to machines, instead users are assigned to the private desktop group, either through individual user accounts or through user group accounts. Then, when a user assigned to the desktop group logs on, a machine is automatically allocated to them.

USER VISIBILITY

Users can be further filtered by configuring the visibility filter on top of the application. This restricts the application to a subset of the users that were granted access by the access policy and entitlement/assignment policy rules on the desktop group.

MULTIPLE DESKTOP GROUPS

You can publish an application to multiple desktop groups, which have to be of the same kind. Generally, an application that is published only to private desktop groups is referred to as a "private application". An application that is only published to shared desktop groups is referred to as a "shared application".

LICENSING

Hosted applications need the appropriate licenses to exist on the license server to be functional.

NAMING

Applications have three names that identify them: the Name, BrowserName and the PublishedName. The Name is unique for each application, is not visible to the user, and is primarily used for administrative purpose. The BrowserName is unique across the entire site, and is primarily used internally. The PublishedName is not unique and is the name seen by end users who have access to this application.

When creating an application, you only need to specify the Name. If no BrowserName is specified one is automatically generated. If no PublishedName is specified by default it is the same as the Name.

The following special characters are not allowed in the BrowserName, PublishedName or the Name: \ / ; : # . * ? = < > | [ ] ( ) " '

To change the PublishedName or BrowserName of an application you must use the Set-BrokerApplication cmdlet.

To change the Name of an application you must use the Rename-BrokerApplication cmdlet.

OPTIONAL

You can configure file-type associations for applications, so that if a user double-clicks a document icon on their device, a published application automatically starts. For more information, see the help for New-BrokerConfiguredFTA.

You can apply tags to applications as another convenient way to further organize (and search for) applications. For more information, see the help for New-BrokerTag.

CMDLETS

New-BrokerApplication

 
        Creates an application for publishing after the needed desktop groups, 
        access policy and entitlement/assignment policy rules have been created. 
 
     

Add-BrokerApplication

 
        Adds one or more applications to a desktop group. 
 
     

Get-BrokerApplication

 
        Gets one or more applications. 
 
     

Remove-BrokerApplication

 
        Deletes one or more applications or it can be used to delete just the 
        association of an application to a desktop group. 
 
     

Rename-BrokerApplication

 
        Changes the Name of an application. 
 
     

Set-BrokerApplication

 
        Changes the settings of application objects, except their names. 
 
 

EXAMPLES

 
 
  SHARED APPLICATION (SingleSession) 
    You have created a catalog with a Random AllocationType and SingleSession 
    SessionSupport. It contains two machines called worker1 and worker2, both in 
    the ACME domain. You publish an application with shared hosting as follows: 
 
    C:\PS> Write-Host "Create a desktop group, and add machines to it" 
    C:\PS> $dg = New-BrokerDesktopGroup "Shared Application Group" 
    -DesktopKind Shared -DeliveryType AppsOnly -SessionSupport 'SingleSession' 
    C:\PS> $m1 = Get-BrokerMachine -MachineName "ACME\worker1" 
    C:\PS> $m2 = Get-BrokerMachine -MachineName "ACME\worker2" 
    C:\PS> Add-BrokerMachine $m1 -DesktopGroup $dg 
    C:\PS> Add-BrokerMachine $m2 -DesktopGroup $dg 
    C:\PS> Write-Host "Create access policy rule for desktop group" 
    C:\PS> New-BrokerAccessPolicyRule -Name "Shared Application Group - Allow Everyone Access" 
    -Enabled $true -DesktopGroupUid $dg.Uid -IncludedUserFilterEnabled $true 
    -AllowedProtocols @("HDX") -AllowedUsers AnyAuthenticated 
    C:\PS> Write-Host "Create application entitlement policy for desktop group" 
    C:\PS> New-BrokerAppEntitlementPolicyRule -Name "Shared Application Group - App Entitlement" 
    -IncludedUsers 'ACME\Domain Users' -DesktopGroupUid $dg.Uid -Enabled $true 
    C:\PS> Write-Host "Create an application" 
    C:\PS> New-BrokerApplication -Name "Notepad" -PublishedName "Notepad" 
    -CommandLineExecutable "notepad.exe" -DesktopGroup $dg.Uid 
 
    In turn, this set of commands: creates a shared single session desktop group 
    for applications delivery; adds two machines (from a catalog with a Random 
    AllocationType and SingleSession SessionSupport) to the desktop group; 
    creates access policy and application entitlement policy rules; creates an 
    application; specifies its name, the executable, and links the application 
    to the desktop group that will host it. 
 
  SHARED APPLICATION (MultiSession) 
    You have created a catalog with a Random AllocationType and MultiSession 
    SessionSupport. It contains one machine called worker1 in the ACME domain. 
    You publish an application with shared hosting as follows: 
 
    C:\PS> Write-Host "Create a desktop group, and add machines to it" 
    C:\PS> $dg = New-BrokerDesktopGroup "Shared Application Group" 
    -DesktopKind Shared -DeliveryType AppsOnly -SessionSupport 'MultiSession' 
    C:\PS> $m1 = Get-BrokerMachine -MachineName "ACME\worker1" 
    C:\PS> Add-BrokerMachine $m1 -DesktopGroup $dg 
    C:\PS> Write-Host "Create access policy rule for desktop group" 
    C:\PS> New-BrokerAccessPolicyRule -Name "Shared Application Group - Allow Everyone Access" 
    -Enabled $true -DesktopGroupUid $dg.Uid -IncludedUserFilterEnabled $true 
    -AllowedProtocols @("HDX") -AllowedUsers AnyAuthenticated 
    C:\PS> Write-Host "Create application entitlement policy for desktop group" 
    C:\PS> New-BrokerAppEntitlementPolicyRule -Name "Shared Application Group - App Entitlement" 
    -IncludedUsers 'ACME\Domain Users' -DesktopGroupUid $dg.Uid -Enabled $true 
    C:\PS> Write-Host "Create an application" 
    C:\PS> New-BrokerApplication -Name "Notepad" -PublishedName "Notepad" 
    -CommandLineExecutable "notepad.exe" -DesktopGroup $dg.Uid 
 
    In turn, this set of commands: creates a shared multi session desktop group 
    for applications delivery; adds one machine (from a catalog with a Random 
    AllocationType and MultiSession SessionSupport) to the desktop group; 
    creates access policy and application entitlement policy rules; creates an 
    application; specifies its name, the executable, and links the application 
    to the desktop group that will host it. 
 
  PRIVATE PRE-ASSIGNED APPLICATION 
    You have a catalog with a Permanent AllocationType and SingleSession 
    SessionSupport. It contains two machines called worker1 and worker2, both in 
    the ACME domain. You publish an application with private hosting using 
    pre-assigned machines as follows: 
 
    C:\PS> Write-Host "Create a desktop group, and add machines to it" 
    C:\PS> $dg = New-BrokerDesktopGroup "Private App G1" -DesktopKind Private 
    -DeliveryType AppsOnly -SessionSupport 'SingleSession' 
    C:\PS> $m1 = Get-BrokerMachine -MachineName "ACME\worker1" 
    C:\PS> $m2 = Get-BrokerMachine -MachineName "ACME\worker2" 
    C:\PS> Add-BrokerMachine $m1 -DesktopGroup $dg 
    C:\PS> Add-BrokerMachine $m2 -DesktopGroup $dg 
    C:\PS> Write-Host "Setting access policy rule for desktop group" 
    C:\PS> New-BrokerAccessPolicyRule -Name "Private App G1 - Allow Everyone Access" 
    -Enabled $true -DesktopGroupUid $dg.Uid -IncludedUserFilterEnabled $true 
    -AllowedProtocols @("HDX") -AllowedUsers AnyAuthenticated 
    C:\PS> Write-Host "Pre-Assign users to the machines" 
    C:\PS> Add-BrokerUser "ACME\user1" -Machine $m1 
    C:\PS> Add-BrokerUser "ACME\user2" -Machine $m2 
    C:\PS> Write-Host "Create an application" 
    C:\PS> New-BrokerApplication -Name "Notepad" -PublishedName "Notepad" 
    -CommandLineExecutable "notepad.exe" -DesktopGroup $dg.Uid 
 
    In turn, this set of commands: creates a private desktop group for 
    applications delivery; adds two machines (from a catalog with a Permanent 
    AllocationType and SingleSession SessionSupport) to the desktop group; 
    creates access policy; creates two user objects; pre-assigns a user to each 
    machine; creates the application; assigns users to it; and links the 
    application to the desktop group that will host it. 
 
  PRIVATE, ASSIGN-ON-FIRST-USE APPLICATION 
    You have a catalog created with a Permanent AllocationType and SingleSession 
    SessionSupport. It contains two machines called worker1 and worker2, both in 
    the ACME domain. You publish an application with private hosting using 
    assign-on-first-use machines as follows: 
 
    C:\PS> Write-Host "Create a desktop group, and add machines to it" 
    C:\PS> $dg = New-BrokerDesktopGroup "Private App G2" -DesktopKind Private 
    -DeliveryType AppsOnly -SessionSupport 'SingleSession' 
    C:\PS> $m1 = Get-BrokerMachine -MachineName "ACME\worker1" 
    C:\PS> $m2 = Get-BrokerMachine -MachineName "ACME\worker2" 
    C:\PS> Add-BrokerMachine $m1 -DesktopGroup $dg 
    C:\PS> Add-BrokerMachine $m2 -DesktopGroup $dg 
    C:\PS> Write-Host "Setting access policy rule for desktop group" 
    C:\PS> New-BrokerAccessPolicyRule -Name "Private App G1 - Allow Everyone Access" 
    -Enabled $true -DesktopGroupUid $dg.Uid -IncludedUserFilterEnabled $true 
    -AllowedProtocols @("HDX") -AllowedUsers AnyAuthenticated 
    C:\PS> Write-Host "Create application assignment policy for desktop group" 
    C:\PS> New-BrokerAppAssignmentPolicyRule -Name "Private App G2 - App Assignment" 
    -IncludedUsers 'ACME\Domain Users' -DesktopGroupUid $dg.Uid -Enabled $true 
    C:\PS> Write-Host "Create an application" 
    C:\PS> New-BrokerApplication -Name "Notepad" -PublishedName "Notepad" 
    -CommandLineExecutable "notepad.exe" -DesktopGroup $dg.Uid 
 
    In turn, this set of commands: creates a private single session desktop 
    group for applications delivery; adds two machines (from a catalog with a 
    Permanent AllocationType and SingleSession SessionSupport) to the desktop 
    group; creates access policy and application assignment policy rules; 
    creates the application, and links the application to the desktop group that 
    will host it.