StoreFront

Set up highly available multi-site stores

Important:

In multiple server deployments, use only one server at a time to make changes to the configuration of the server group. Ensure that the Citrix StoreFront management console is not running on any of the other servers in the deployment. Once complete,你的配置更改传播到服务器groupso that the other servers in the deployment are updated.

For stores that aggregate resources from multiple deployments, particularly geographically dispersed deployments, you can configure load balancing and failover between deployments, mapping of users to deployments, and specific disaster recovery deployments to provide highly available resources. Where you have configured separate Citrix Gateway appliances for your deployments, you can define the optimal appliance for users to access each of the deployments.

Configure user mapping and aggregation

The StoreFront management console enables you to:

  • Map users to deployments:基于活动目录组成员,你can limit which users have access to particular deployments.
  • Aggregate deployments:You can specify which deployments have resources that you want to aggregate. Matching resources from aggregated deployments are presented to the user as a single highly-available resource.
  • Associate a zone with a deployment:当访问Citrix网关在全球负载-balancing configuration, StoreFront prioritizes deployments from zones matching the gateway zone when launching resources.
  1. Ensure that you have configured the store with details of all the Citrix Virtual Apps and Desktops deployments that you want to use in your configuration. For more information about adding deployments to stores, seeManage the resources made available in stores.
  2. On the WindowsStartscreen orAppsscreen, locate and click theCitrix StoreFronttile.
  3. Select theStoresnode in the left pane of the Citrix StoreFront management console and clickManage Delivery Controllersin theActionspane.
  4. 如果两个或两个以上的控制器定义,点击User Mapping and Multi-Site Aggregation Configuration > Configure.
  5. ClickMap users to controllersand make selections on the screens to specify which Delivery Controllers are available to which users.
  6. ClickAggregate resources资源聚合来自多个部署。When Delivery Controllers are aggregated, applications and desktops from Delivery Controllers with the same display name and path are presented as a single application or desktop in Citrix Workspace app.

    1. To aggregate Delivery Controllers, select multiple controllers and clickAggregate.
    2. SelectAggregated Controller Settingsoptions:

      Controllers publish identical resources- When selected, StoreFront enumerates resources from only one of the controllers in the aggregated set. When not selected, StoreFront enumerates resources from all controllers in the aggregated set (to accumulate the user’s entire set of available resources). Selecting this option gives a performance improvement when enumerating resources, but we do not recommend it unless you are certain that the list of resources is identical across all aggregated deployments.

      Load balance resources across controllers- When selected, launches are distributed evenly among the available controllers. When not selected, launches are directed to the first controller specified in the user mapping dialog screen, failing over to subsequent controllers if the launch fails.

  7. In the User Mapping and Multi-Site Aggregation Configuration dialog, clickOK.

  8. In the Manage Delivery Controllers dialog, clickOK.

Advanced configurations

You can configure many common multi-site and high availability operations with the StoreFront management console. You can also configure StoreFront using PowerShell or by editing the StoreFront configuration files, which provides the following extra functionality:

  • Ability to specify multiple groupings of deployments for aggregation.
    • The management console allows only a single grouping of deployments, which is sufficient for most cases.
    • 与许多商店部署与脱节的年代ets of resources, multiple groupings might give performance improvements.
  • Ability to specify complex preference orders for aggregated deployments. The management console allows aggregated deployments to be load balanced or to be used as a single failover list.
  • Ability to define disaster recovery deployments (deployments accessed only when all other deployments are unavailable).

Warning:

After configuring advanced multi-site options by manually editing the configuration file, some tasks become unavailable in the Citrix StoreFront management console to prevent misconfiguration.

  1. Ensure that you have configured the store with details of all the Citrix Virtual Apps and Desktops deployments that you want to use in your configuration, including disaster recovery deployments. For more information about adding deployments to stores, seeManage the resources made available in stores.

  2. Use a text editor to open the web.config file for the store, which is typically located in the directory C:\inetpub\wwwroot\Citrix\storename\, where storename is the name specified for the store when it was created.

  3. Locate the following section in the file.

       
  4. Specify your configuration as shown below.

            ...       ...     ...    ...     ...     

Use the following elements to define your configuration.

  • userFarmMapping—Specifies groups of deployments and defines the load balancing and failover behavior between those deployments. Identifies deployments to be used for disaster recovery. Controls user access to resources by mapping Microsoft Active Directory user groups to the specified groups of deployments.

  • groups—Specifies the names and security identifiers (SIDs) of Active Directory user groups to which the associated mapping applies. User group names must be entered in the formatdomain\usergroup. Where more than one group is listed, the mapping is only applied to users who are members of all the specified groups. To enable access for all Active Directory user accounts, set the group name & sid toeveryone.

  • equivalentFarmSet—Specifies a group of equivalent deployments providing resources to be aggregated for load balancing or failover, plus an optional associated group of disaster recovery deployments.

    TheloadBalanceMode attribute determines the allocation of users to deployments. Set the value of theloadBalanceModeattribute toLoadBalancedto randomly assign users to deployments in the equivalent deployment set, evenly distributing users across all the available deployments. When the value of theloadBalanceModeattribute is set toFailover, users are connected to the first available deployment in the order in which they are listed in the configuration, minimizing the number of deployments in use at any given time. Specify names for aggregation groups to identify equivalent deployment sets providing resources to be aggregated. Resources provided by equivalent deployment sets belonging to the same aggregation group are aggregated. To specify that the deployments defined in a particular equivalent deployment set should not be aggregated with others, set the aggregation group name to the empty string”“.

    Theidenticalattribute accepts the valuestrueandfalse, and specifies whether all deployments within an equivalent deployment set provide exactly the same set of resources. When the deployments are identical, StoreFront enumerates the user’s resources from just one primary deployment in the set. When the deployments provide overlapping but not identical resources, StoreFront enumerates from each deployment to obtain the full set of resources available to a user. Load balancing (at launch time) can take place whether or not the deployments are identical. The default value for theidenticalattribute isfalse, although it is set totruewhen StoreFront is upgraded to avoid altering the pre-existing behavior following an upgrade.

  • primaryFarmRefs—Specifies a set of equivalent Citrix Virtual Apps and Desktops sites where some or all of the resources match. Enter the names of deployments that you have already added to the store. The names of the deployments you specify must match exactly the names you entered when you added the deployments to the store.

  • optimalGatewayForFarms—Specifies groups of deployments and defines the optimal Citrix Gateway appliances for users to access resources provided by these deployments. Typically, the optimal appliance for a deployment is colocated in the same geographical location as that deployment. You only need to define optimal Citrix Gateway appliances for deployments where the appliance through which users access StoreFront is not the optimal appliance.

Configure subscription synchronization

To configure periodic pull synchronization of users’ subscriptions from stores in different StoreFront deployments, you execute Windows PowerShell commands.

Note:

The StoreFront and PowerShell consoles cannot be open at the same time. Always close the StoreFront admin console before using the PowerShell console to administer your StoreFront configuration. Likewise, close all instances of PowerShell before opening the StoreFront console.

When establishing your subscription synchronization, note that the configured Delivery Controllers must be named identically between the synchronized Stores and that the Delivery Controller names are case sensitive. Failing to duplicate the Delivery Controller names exactly may lead to users having different subscriptions across the synchronized Stores. If you synchronizing subscriptions from aggregated resources, the name of the aggregation groups used by both Stores must also match. Delivery Controller names and Aggregation Group names are case sensitive; for example,XenDesktop7is different toXendesktop7.

  1. Use an account with local administrator permissions to start the Windows PowerShell ISE.

  2. To configure synchronization to occur at a particular time every day, run the following command.

    $RepeatMinutes = 30 Add-STFSubscriptionSynchronizationSchedule -StartTime (Get-Date -Format t) -RepeatMinutes $RepeatMinutes 

    Use-StartTimeto specify when the synchronization schedule starts. Using(Get-Date -Format t)starts the synchronization schedule immediately, whereas specifying10:00starts the repeating schedule at the specified time.

    -RepeatMinutessets the frequency the schedule will run at. For example,30runs the schedule every half hour, and180runs the schedule every 3 hrs. We recommend that you stagger pull schedules to avoid two server groups attempting to pull subscription data from each other at the same time. For example, a schedule to pull data from each server group every 60 mins would be configured as follows. Server group 1 pulls data from server group 2 at 01:00, 02:00, 03:00 and so on. Server group 2 pulls data from server group 1 at 01:30, 02:30, 03:30 and so on.

  3. To specify the remote StoreFront deployment containing the store to be synchronized, type the following command. You must configure this for each data center where a StoreFront server group resides so it can pull subscription data from other remote datacenters. See the following US and UK datacenter examples:

    • Run on US data center StoreFront servers to pull data from the UK datacenter servers:

      $StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/Citrix/Store" Add-STFSubscriptionSynchronizationSource -FriendlyName "SyncFromUKStore" -StoreService $StoreObject -RemoteStoreFrontAddress "UKloadbalancedStoreFront.example.com" 
    • Run on UK data center StoreFront servers to pull data from the US datacenter servers:

      $StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/Citrix/Store" Add-STFSubscriptionSynchronizationSource -FriendlyName "SyncFromUSStore" -StoreService $StoreObject -RemoteStoreFrontAddress "USloadbalancedStoreFront.example.com" 

    whereFriendlyNameis a name that helps you identify the remote deployment andRemoteStoreFrontAddressis the FQDN of the StoreFront server or load-balanced server group for the remote deployment. To synchronize application subscriptions between two or more stores, all stores which are to be synchonised must have the same name in their respective StoreFront deployments.

  4. Add the Microsoft Active Directory domain machine accounts for each StoreFront server in the remote deployment to the local Windows user group CitrixSubscriptionSyncUsers on the current server.

    This allows the current servers to pull new or updated subscription data from the remote servers listed in in CitrixSubscriptionSyncUsers once you have configured a synchronization schedule. For more information about modifying local user groups, seehttps://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc772524(v=ws.11).

    Citrix Subscription Synch Users properties

  5. When you have configured the schedule as you intend, use the Citrix StoreFront management console, or the Powershell below, to propagate the subscription synchronization schedules and sources to the all other servers in the group.

    Publish-STFServerGroupConfiguration 

    For more information about propagating changes in a multiple server StoreFront deployment, seeConfigure server groups.

  6. To remove an existing subscription synchronization schedule, run the following command, then propagate the configuration change to the other StoreFront servers in the deployment.

    Clear-STFSubscriptionSynchronizationSchedule 
  7. To remove a specific subscription synchronization source, run the following command, then propagate the configuration change to the other StoreFront servers in the deployment.

    Remove-STFSubscriptionSynchronizationSource -FriendlyName "SyncFromUKStore" 
  8. To remove all existing subscription synchronization sources, run the following command, then propagate the configuration change to the other StoreFront servers in the deployment.

    Clear-STFSubscriptionSynchronizationSource 
  9. To list the subscription synchronization schedules currently configured for your StoreFront deployment, run the following command.

    Get-STFSubscriptionSynchronizationSchedule 
  10. To list the subscription synchronization sources currently configured for your StoreFront deployment, run following command.

    Get-STFSubscriptionSynchronizationSource 

Configure optimal HDX routing for a store

The difference between a farm and a zone when defining optimal gateway mappings for a store

In StoreFront versions released before 3.5, you could map an optimal gateway only to a farm or farms. The concept of zones enables you to divide a Citrix Virtual Apps and Desktops deployment into zones based on the data center or geographic location where the Citrix Virtual Apps and Desktops controllers and published resources reside. Define zones in Citrix Virtual Apps and Desktops Studio. StoreFront interoperates with Citrix Virtual Apps and Desktops, and any zones defined in StoreFront must exactly match the zone names defined in Citrix Virtual Apps and Desktops.

StoreFront also allows you to create an optimal gateway mapping for all of the Delivery Controllers located in the defined zone. Mapping a zone to an optimal gateway is almost identical to creating mappings using farms, with which you might already be familiar. The only difference is that zones typically represent much larger containers with many more Delivery Controllers. You do not need to add every Delivery Controller to an optimal gateway mapping. To place the controllers into the desired zone, you need only tag each Delivery Controller with a zone name that matches a zone already defined in Citrix Virtual Apps and Desktops. You can map an optimal gateway to more than one zone, but typically you should use a single zone. A zone usually represents a data center in a geographic location. It is expected that each zone has at least one optimal Citrix Gateway that is used for HDX connections to resources within that zone.

For more information about zones, seeZones.

Place a Delivery Controller into a zone

Set the zone attribute on every Delivery Controller you wish to place within a Zone.

  1. On the WindowsStartscreen or Apps screen, locate and click theCitrix StoreFronttile.
  2. Select theStoresnode in the left pane of the Citrix StoreFront management console and clickManage Delivery Controllersin theActionspane.
  3. Select a controller, clickEdit, and then clickSettingson theEdit Delivery Controllerscreen.
  4. On theZonesrow, click in the second column.
  5. ClickAddon theDelivery Controller Zone Namesscreen and then add a zone name.

localized image

Configure optimal Citrix Gateway routing to optimize the handling of ICA connection routing from the HDX engine to published resources such as XenDesktop VDAs or Citrix Virtual Apps and Desktops published applications using StoreFront. Typically, the optimal gateway for a site is colocated in the same geographical location.

You need only define optimal Citrix Gateway appliances for deployments where the appliance through which users access StoreFront is not the optimal gateway. If launches should be directed back through the gateway making the launch request, StoreFront does this automatically.

Example scenario using farms

1 x UK Gateway -> 1 x UK StoreFront

  • UK Apps and Desktops local
  • US Apps and Desktops used only for UK failover

1 x US Gateway -> 1 x US StoreFront

  • US Apps and Desktops local
  • UK Apps and Desktops used only for US failover

A UK gateway provides remote access to UK hosted resources such as apps and desktops using a UK StoreFront.

The UK StoreFront has both a UK-based and US-based Citrix Gateway defined and UK and US controllers in its Delivery Controller list. UK users access remote resources through their geographically colocated gateway, StoreFront, and farms. If their UK resources become unavailable, they can connect to US resources as a temporary failover alternative.

Without optimal gateway routing all ICA launches would pass through the UK gateway that made the launch request regardless of where the resources are geographically located. By default, gateways used to make launch requests are identified dynamically by StoreFront when the request is made. Optimal gateway routing overrides this and forces US connections through the gateway closest to the US farms that provides apps and desktops.

Note:

You can map only one optimal gateway per site for each StoreFront store.

Example scenario using zones

1 x CAMZone -> 2 x UK StoreFronts

  • Cambridge, UK: Apps and Desktops
  • Fort Lauderdale, Eastern US: Apps and Desktops
  • Bangalore, India: Apps and Desktops

1 x FTLZone -> 2 x US StoreFronts

  • Fort Lauderdale, Eastern US: Apps and Desktops
  • Cambridge, UK: Apps and Desktops
  • Bangalore, India: Apps and Desktops

1 x BGLZone -> 2 x IN StoreFronts

  • Bangalore, India: Apps and Desktops
  • Cambridge, UK: Apps and Desktops
  • Fort Lauderdale, Eastern US: Apps and Desktops

Figure 1. Suboptimal gateway routing

Suboptimal gateway routing

Figure 2. Optimal gateway routing

Optimal gateway routing

Use the Citrix StoreFront management console

After you have configured separate Citrix Gateway appliances for your deployments, you can define the optimal appliance for users to access each of the deployments.

  1. On the WindowsStartscreen orAppsscreen, locate and click theCitrix StoreFronttile.
  2. Select theStoresnode in the left pane of the Citrix StoreFront management console and, in the results pane, select a store. In theActionspane, clickConfigure Store Settings.
  3. On theSettings>Optimal HDX Routingpage, select a gateway.
  4. If you select theExternal Onlycheck box, it is equivalent to-enabledOnDirectAccess = falseand Direct HDX Connection is equivalent to usingSet-DSFarmsWithNullOptimalGatewayfor farms or zones.

localized image

Add a new gateway

One of the options in the previous procedure is toAdd gateway. After you chooseAdd gateway, the Add Citrix Gateway screen displays.

  1. On theGeneral Settings屏幕上,完成显示名称,Citrix网关URL, and Usage or Role settings to configure access to stores through Citrix Gateway for users connecting from public networks. Remote access through a Citrix Gateway cannot be applied to unauthenticated stores.
  2. On theSecure Ticket Authority (STA)screen, complete the options displayed. STA is hosted on Citrix Virtual Apps and Desktops servers and issues session tickets in response to connection requests. These session tickets form the basis of authentication and authorization for access to Citrix Virtual Apps and Desktops resources.
  3. On theAuthentication Settingsscreen, enter the settings that specify how the remote user provides authentication credentials.

Use PowerShell to configure optimal Citrix Gateway routing for a store

PowerShell API parameters

-SiteId (Int)—Site ID within IIS. This is typically 1 for the site in IIS where StoreFront is installed by default.

-ResourcesVirtualPath (String)—Path to the store that is to be configured to have a farm to optimal gateway mapping.

Example: “/Citrix/Store”

-GatewayName (String)—Name given to identify the Citrix Gateway within StoreFront.

Example 1: ExternalGateway

Example 2: InternalGateway

-Hostnames (String Array)—Specifies the fully qualified domain name (FQDN) and port of the optimal Citrix Gateway appliance.

Example1 for standard vServer port 443:gateway.example.com

Example2 for nonstandard vServer port 500:gateway.example.com:500

-Farms (String Array)—Specifies a set of (typically colocated) Citrix Virtual Apps and Desktops deployments that share a common optimal Citrix Gateway appliance. A farm can contain one or more Delivery Controllers that provide published resources.

You can configure a Citrix Virtual Desktops Site in StoreFront under Delivery Controllers as “XenDesktop”. This represents a single farm. This could contain multiple Delivery Controllers in its failover list.

Example: “XenDesktop”

XenDesktop-A.example.com

XenDesktop-B.example.com

XenDesktop-C.example.com

-Zones (String Array)—Specifies a data center or data centers containing many Delivery Controllers. This requires you tag Delivery Controller objects in StoreFront with the appropriate zone to which you want to allocate them.

-staUrls (String Array)—Specifies the URLs for Citrix Virtual Apps and Desktops servers running the Secure Ticket Authority (STA). If using multiple farms, list the STA servers on each using a comma separated list:

Example:http://xenapp-a.example.com/scripts/ctxsta.dll,http://xendesktop-a.example.com/scripts/ctxsta.dll

-StasUseLoadBalancing (Boolean)—Set totrue: randomly obtains session tickets from all STAs, evenly distributing requests across all the STAs. Set tofalse: users are connected to the first available STA in the order in which they are listed in the configuration, minimizing the number of STAs in use at any given time.

-StasBypassDuration—Set the time period, in hours, minutes, and seconds, for which an STA is considered unavailable after a failed request.

Example: 02:00:00

-EnableSessionReliability (Boolean)—Set totrue: keeps disconnected sessions open while Receiver attempts to reconnect automatically. If you configured multiple STAs and want to ensure that session reliability is always available, set the value of the useTwoTickets attribute totrueto obtain session tickets from two different STAs in case one STA becomes unavailable during the session.

-UseTwoTickets (Boolean)—Set totrue: obtains session tickets from two different STAs in case one STA becomes unavailable during the session. Set tofalse: uses only a single STA server.

-EnabledOnDirectAccess (Boolean)—Set totrue: ensures that when local users on the internal network log on to StoreFront directly, connections to their resources are still routed through the optimal appliance defined for the farm. Set tofalse: connections to resources are not routed through the optimal appliance for the farm unless users access StoreFront through a Citrix Gateway.

When PowerShell scripts span multiple lines such as shown below, each line must end with the backtick (`) character.

Tip:

Citrix recommends copying any code examples into the Windows PowerShell Integrated Scripting Environment (ISE) to validate the Powershell code using the format checker before you run it.

Configure an optimal gateway for a farm

Note:

Configuration of Optimal HDX routing with the old PowerShell cmdletSet-DSOptimalGatewayForFarms, does not work.

To work around this issue:

  1. Configure a global gateway with the settings you want for Optimal HDX routing using theAdd-DSGlobalV10Gatewaycommand and provide default values for the authentication settings.
  2. Use theAdd-DSStoreOptimalGatewaycommand to add the optimal gateway configuration.

Example:

Add-DSGlobalV10Gateway -Id 2eba0524-af40-421e-9c5f-a1ccca80715f -Name LondonGateway -Address "http://example" -Logon Domain -SecureTicketAuthorityUrls @("http://staurl1", "http://staurl2")

Add-DSStoreOptimalGateway -SiteId 1 -VirtualPath /Citrix/Store1 -GatewayId 2eba0524-af40-421e-9c5f-a1ccca80715f -Farms @("Controller") -EnabledOnDirectAccess $true

Example

Create or overwrite Optimal Gateway For Farms mappings for the storeInternal.

& "$Env:PROGRAMFILES\Citrix\Receiver StoreFront\Scripts\ImportModules.ps1" Set-DSOptimalGatewayForFarms -SiteId 1 \` -ResourcesVirtualPath /Citrix/Internal \` \-GatewayName "gateway1" \` \-Hostnames "gateway1.example.com:500" \` \-Farms "XenApp","XenDesktop" \` \-StaUrls "https://xenapp.example.com/scripts/ctxsta.dll","https://xendesktop.example.com/scripts/ctxsta.dll" \` \-StasUseLoadBalancing:$false \` \-StasBypassDuration 02:00:00 \` \-EnableSessionReliability:$false \` -UseTwoTickets:$false \` \-EnabledOnDirectAccess:$true 

Configure an optimal gateway for a zone

Example

Create or overwrite Optimal Gateway For Farms mappings for the zoneCAMZone.

**& "$Env:PROGRAMFILES\Citrix\Receiver StoreFront\Scripts\ImportModules.ps1" ** **Set-DSOptimalGatewayForFarms -SiteId 1 \`** **-ResourcesVirtualPath /Citrix/Internal \` \-GatewayName "gateway1" \` \-Hostnames "gateway1.example.com:500" \` \-Zones "CAMZone" \` \-StaUrls "https://xenapp.example.com/scripts/ctxsta.dll","https://xendesktop.example.com/scripts/ctxsta.dll" \` \-StasUseLoadBalancing:$false \` \-StasBypassDuration 02:00:00 \` \-EnableSessionReliability:$false \` \-UseTwoTickets:$false \` \-EnabledOnDirectAccess:$true ** 

Example

This script returns all Optimal Gateway For Farms mappings for the storeInternal.

Get-DSOptimalGatewayForFarms -SiteId 1 –ResourcesVirtualPath "/Citrix/Internal"

Example

Remove all optimal gateway for farms mappings for store calledInternal.

Remove-DSOptimalGatewayForFarms -SiteId 1 -ResourcesVirtualPath "/Citrix/Internal"Configure direct HDX connections for farms

Example

This script prevents all ICA launches from passing through a gateway for the list of specified farms for the store calledInternal.

Set-DSFarmsWithNullOptimalGateway -SiteId 1 -ResourcesVirtualPath /Citrix/Store -Farms "Farm1","Farm2"

Example

This script returns all farms that are configured to prevent ICA launches from passing through a gateway for a store calledInternal.

Get-DSFarmsWithNullOptimalGateway -SiteId 1 -ResourcesVirtualPath "/Citrix/Internal"

Determine if your Optimal Gateway For Farms mappings are being used by StoreFront

  1. Enable StoreFront tracing on all server group nodes using PowerShell by running:

    & "$Env:PROGRAMFILES\Citrix\Receiver StoreFront\Scripts\ImportModules.ps1"` \#Traces output is to c:\Program Files\Citrix\Receiver Storefront\admin\trace\ Set-DSTraceLevel -All -TraceLevel Verbose 
  2. Open the Debug View tool on the desktop of a StoreFront server. If you are using a storefront server group, you might have to do this on all nodes to ensure you obtain traces from the node that receives the launch request.

  3. Enable Capture Global Win32 events.

    Enable Capture Global Win32 events

  4. Save the trace output as a .log file and open the file with Notepad. Search for the log entries shown in the example scenarios below.

  5. Turn tracing off afterwards, as it consumes a lot of disk space on your StoreFront servers.

    Set-DSTraceLevel -All -TraceLevel Off

Tested optimal gateway scenarios

- External client logs on **Gateway1**. Launch is directed through the designated optimal gateway **Gateway2** for the farm **Farm2**. `Set-DSOptimalGatewayForFarms -onDirectAccess=false` Farm2 is configured to use the optimal gateway Gateway2. Farm2 has optimal gateway on direct access disabled. The optimal gateway Gateway2 will be used for the launch. - Internal client logs on using StoreFront. Launch is directed through the designated optimal gatewayGateway1 for the farm Farm1. `Set-DSOptimalGatewayForFarms -onDirectAccess=true` No dynamically identified gateway in request. StoreFront was contacted directly. Farm1 is configured to use the optimal gateway Gateway1. Farm1 has optimal gateway on direct access enabled. The optimal gateway Gateway1 will be used for the launch. - Internal client logs on using Gateway1. Launches of resources on Farm1 are prevented from passing through any gateway and StoreFront is contacted directly. `Set-DSFarmsWithNullOptimalGateway` Dynamically identified gateway in request: Gateway1 Farm1 is configured to not use a gateway. No gateway will be used for launch.