Jump to content

Thomas Tran

Members
  • Posts

    31
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Thomas Tran

  1. I think it's easier that you disable the Citrix Policy : Virtual Channel Allow List on the server. The virtual channel driver on the client side cannot be used (invoked) itself without the initial communication from the server. You just need to make on the server that users cannot install any program with no permission. Citrix added this security check for nothing helpful.

     

    Thomas Tran

    https://www.mqtechnologies.com/

  2. Many old applications use MAPI to send email from the File menu, in this case, there is no solution to redirect the Mail command to local machine (there may be but not easy with low level C++ programming).

    For the Export to Excel, if the application does not call Excel functions directly, there may be a solution with 3rd party software.

     

    Good luck

    Thomas Tran

    https://www.mqtechnologies.com

  3. Dear all,

     

    Is it still possible to launch Citrix Receiver / Workspace with a command line by passing an ICA file as parameter as in the old time like with ICA32Client.exe? For example, from my local machine I have a  WinForm application, when I click on a button that will run a command to connect to a published app on Citrix server:

    Receiver.exe myICAFile.ica

    or 

    SelfService.exe myICA.ica

     

    If there is any documentation about this please give me the link

     

    Thank you very much

     

    Thomas Tran

     

  4. In my opinion, that does not work with only configuration setting. By programming, may be. On the server side, with a published app session, the Windows Shell (explorer.exe) was replaced by Citrix Wfshell.exe so you cannot send message from a service to it. The way that may work is sending the message from the server to client side using Virtual Channel and display it on the local/client machine. 

     

    Just find Citrix WFAPI SDK document here:

    https://www.citrix.com/content/dam/citrix/en_us/documents/downloads/sdk/wf-api-sdk-guide.pdf

    You can use the function WFSendMessageA to achieve it.

     

    Regards

    Thomas Tran

    https://www.mqtechnologies.com

     

  5. Technically, if you read this article carefully : https://support.citrix.com/article/CTX122438, that is not possible because the browser takes control when a link is clicked inside the browser. There may be some work around if the webpage/webapp is yours and you can change the HTML source code of the webpage, it cannot work if you browse other website like Microsoft or Amazon, etc. If you can modify the HTML source code you can modify the <a> tag (your html code) to a custom protocol handler (e.g: replace 

    <a href='http://www.mqtechnologies.com'>Redirect</a> per
    <a href='RemoteUrl://www.mqtechnologies.com'>Redirect</a>

    Then you make a small RemoteUrl.exe and register it as a protocol handle in the registry. That RemoteUrl.exe program then will make a call back to the local machine with the original URL.

     

    Another way is to develop a plugin (extension for IE or Chrome), that plugin will check the link before navigating to the link or send it back to the local machine. This method was used by Citrix in the past, but when the browser or Windows change, it will stop working. The best workaround is the previous method if you own the webapp and can modify the html source. It's quite easy to replace the <a href> tag with just some lines of javascript .

     

    Regards

    Thomas Tran

    https://www.mqtechnologies.com

    • Like 1
  6. I had a problem with Osk.exe in the past, I remember that I put the command line into a .BAT file and it worked for me.

    There are some discussions on osk.exe problem here, you may take a look:

    https://social.technet.microsoft.com/Forums/windowsserver/en-US/4f1c2a35-bbaf-4ff7-aee8-68c31d26d38b/onscreen-keyboard?forum=winserverTS

     

    Good luck

     

    Thomas Tran

    https://www.mqtechnologies.com

  7. You may try to modify these registry keys on the server:

    http

    https

    IE.HTTP

    IE.HTTPS

     

    BACKUP them before making the change (e.g: rename http to http_bak, https to https_bak, ..etc). We use that for our program Remote Executer on RDS.

     

    Good luckj

    Thomas Tran

    https://www.mqtechnologies.com

     

    Here is the registry entries (copy and paste in notepad and save it as a .REG file and import it on the server:

     

    Windows Registry Editor Version 5.00

     

    [HKEY_CLASSES_ROOT\http]
    @="URL:HyperText Transfer Protocol"
    "URL Protocol"=""
    "EditFlags"=dword:00200002

    [HKEY_CLASSES_ROOT\http\shell\open\command]
    @="\"C:\\Program Files (x86) \\Citrix\\system32\\iexplore.exe" %1"


    [HKEY_CLASSES_ROOT\https]
    @="URL:HyperText Transfer Protocol"
    "URL Protocol"=""
    "EditFlags"=dword:00200002

    [HKEY_CLASSES_ROOT\https\shell\open\command]
    @="\"C:\\Program Files (x86) \\Citrix\\system32\\iexplore.exe" %1"


    [HKEY_CLASSES_ROOT\IE.HTTP]
    @="URL:HyperText Transfer Protocol"
    "URL Protocol"=""
    "EditFlags"=dword:00200002

    [HKEY_CLASSES_ROOT\IE.HTTP\shell\open\command]
    @="\"C:\\Program Files (x86) \\Citrix\\system32\\iexplore.exe" %1"


    [HKEY_CLASSES_ROOT\IE.HTTPS]
    @="URL:HyperText Transfer Protocol"
    "URL Protocol"=""
    "EditFlags"=dword:00200002

    [HKEY_CLASSES_ROOT\IE.HTTPS\shell\open\command]
    @="\"C:\\Program Files (x86) \\Citrix\\system32\\iexplore.exe" %1"

     

    • Like 1
  8. I recommend that you rename

    [HKEY_CLASSES_ROOT\http] and [HKEY_CLASSES_ROOT\IE.HTTP]

    to

    [HKEY_CLASSES_ROOT\http_bak] and [HKEY_CLASSES_ROOT\IE.HTTP_bak]

     

    and recreate them with these values, nothing else.

     

     Windows Registry Editor Version 5.00

     

    [HKEY_CLASSES_ROOT\http]
    @="URL:HyperText Transfer Protocol"
    "URL Protocol"=""
    "EditFlags"=dword:00200002

     

    [HKEY_CLASSES_ROOT\http\shell\open\command]
    @="\"C:\\Program Files (x86)\\Citrix\\system32\\iexplore.exe\" %1"

     

    [HKEY_CLASSES_ROOT\IE.HTTP]
    @="URL:HyperText Transfer Protocol"
    "URL Protocol"=""
    "EditFlags"=dword:00200002

    [HKEY_CLASSES_ROOT\IE.HTTP\shell\open\command]
    @="\"C:\\Program Files (x86)\\Citrix\\system32\\iexplore.exe\" %1"

     

    By the way, if you have set ServerFTA as default program, this key will be used:

    [HKEY_CLASSES_ROOT\ServerFTAHTML\shell\open\command]
    @="\"C:\\Program Files (x86)\\Citrix\\system32\\iexplore.exe\" %1"

     

    Did you add URL to ValidSites ? (https://docs.citrix.com/en-us/xenapp-and-xendesktop/7-15-ltsr/general-content-redirection/host-to-client-redirection.html)

     

    I'm sorry for the incorrect information in my previous post:

    ForceShellExecute=1

    is necessary only for links inside Office document like Word, Excel, PowerPoint. No need for Outlook.

     

    In Outlook email, it will be handler by default. We only need to associate with Citrix "C:\\Program Files (x86)\\Citrix\\system32\\iexplore.exe\"

     

    Regards

    Thomas Tran

    https://www.mqtechnologies.com

     

  9. Do you have other browser than Microsoft installed on the server? If yes, there may be a conflict with default browser setting. Since Windows 2012, 2016 Microsoft has changed the registry setting, it becomes very complicated to change. You may consult these topics for some useful information:

    https://discussions.citrix.com/topic/385357-users-are-prompted-to-specify-internet-browser-when-you-click-on-a-link-in-outlook-2016/

     

    https://discussions.citrix.com/topic/381964-setting-the-default-browser/

     

    If the default browser is MS Edge or IE you may need to associate the command to these 2 keys:

    HKEY_LOCAL_MACHINE\http 

    HKEY_LOCAL_MACHINE\IE.HTPP

     

    E.g:

    HKEY_LOCAL_MACHINE\http\shell\open\command] @="\"C:\\Program Files (x86)\\Citrix\\system32\\iexplore.exe\" %1"

    HKEY_LOCAL_MACHINE\IE.HTTP\shell\open\command] @="\"C:\\Program Files (x86)\\Citrix\\system32\\iexplore.exe\" %1"

     

    The idea is to set Citrix Server FTA and http protocol handler so when users click on the link it will pass the URL to the Citrix program:

    "C:\\Program Files (x86)\\Citrix\\system32\\iexplore.exe\" URL

    Then it will be forwarded to the client side.

     

    For example, we have a program named RemoteExecuter.exe that is used for URL host to client redirection on RDS, to associate it with http protocol (no other browser installed on the server, we use this setting (the keys must be renamed and recreated with these values so no other values can change the behavior):

     

    The first block (@="URL:HyperText Transfer Protocol") is mandatory since Window 2016, we got a lot of headache because of that

     

    Windows Registry Editor Version 5.00
    [HKEY_CLASSES_ROOT\http]
    @="URL:HyperText Transfer Protocol"
    "URL Protocol"=""
    "EditFlags"=dword:00200002


    [HKEY_CLASSES_ROOT\http\shell\open\command]
    @="\"C:\\Program Files (x86)\\MQTechnologies\\RemoteExecuter\\RemoteExecuter.exe\" %1"
    [HKEY_CLASSES_ROOT\IE.HTTP]
    @="URL:HyperText Transfer Protocol"
    "URL Protocol"=""
    "EditFlags"=dword:00200002

     

    [HKEY_CLASSES_ROOT\IE.HTTP\shell\open\command]
    @="\"C:\\Program Files (x86)\\MQTechnologies\\RemoteExecuter\\RemoteExecuter.exe\" %1"

     

    You can do similar with "C:\\Program Files (x86)\\Citrix\\system32\\iexplore.exe\"

     

    Regards

     

    Thomas Tran

    https://www.mqtechnologies.com

     

     

    • Like 1
  10. You may try to add this registry key on the server:
    ForceShellExecute=1


    If you are running 32-bit Office on 64-bit Windows server:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\9.0\Common\Internet

     

    If you are running 64-bit Office on 64-bit Windows, the registry key will be:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\9.0\Common\Internet

     

    Remember it’s always under \9.0\

     

    Regards

     

    Thomas Tran

    https://www.mqtechnologies.com

     

    • Like 1
  11. I think logically, if you keep Citrix FTA registry key and delete all other registry keys it should work. Citrix FTA will detect if a http link is invoked and it will pass the link to the browser on the server or redirect to local machine, depending on your setting.

     

    It becomes complicated since Windows 2012, Microsoft has changed the UserChoice key with hash value so it breaks every thing.

    On the RDS side, people using my program Remote Executer for URL redirection and with that registry setting, it works quite well.

     

    There may be problem in Citrix FTA program, it does not detect the right default browser

     

    Regards

     

    Thomas Tran

  12. This is not a problem of Citrix, so I don't think Citrix will help you. The problem is all browser programs will try to register themselves with Windows to handle http protocol .

     

    The solution as I have answered in my previous post is to delete all those keys, and you should delete them also in the master VM Image as someone has provided the feedback, so when the VM is recreated it will not contain those registry keys. You can also try to remove the write permission on that registry key after deleting those setting.

     

    Regards

     

    Thomas Tran

  13. Hi,

     

    If I remember well the Citrix FTA is the default option, you can leave it there as the only option (remove IE key too). There is another flag that enable/disable Citrix URL redirection, so if it's disabled, Citrix will launch the default browser on the server (IE).

     

    The way that Citrix wants to take over control of everything is not very good as they create a program with the same name as IExplore.exe and that program will check if URL Redirection is enabled and if the URL is in the White List and reachable on the client side it will then open the URL on the local side, if not it will open on the server. So I think you can use the Citrix FTA option instead of the IE value in the registry. Just disable Citrix FTA redirection. Sorry, I understand how that mechanism work but I don't deploy too many Citrix environment. There may be some expert in this forum can help you better.

     

    You may play with these registry keys:

    HKEY_LOCAL_MACHINE\http 

    HKEY_LOCAL_MACHINE\IE.HTPP

    etc

     

    Regards

     

    Thomas Tran

  14. If you want to set IE as default browser, you can edit the registry at:

    HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications
    and
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\RegisteredApplications

     

    Remove all the line about Chrome, FireFox, VMWare (Backup them first by exporting the key in case you want to reverse back).

     

    The Citrix FTA value is for URL redirection, if you want when a link is clicked the url is opened on the client side, you need to keep that line and remove the IE line as well. If you really want to use IE as default browser on the server, remove the Citrix FTA value and leave the IE value alone

     

    Good look

     

    Thomas Tran

    Free tools for Citrix & RDS

    http://www.mqtechnologies.com

    • Like 1
  15. Hi,

     

    You can check the registry:

     

    [HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]

    and

    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\RegisteredApplications]

     

    If there are entries of Citrix Metaframe Server FTA and Google Chrome then remove them (backup the registry first).

    If there is only 1 registerered application (IE) left for http protocol, it will becomes the default.

     

    Regards

     

    Thomas Tran

    Utilities for Citrix and Remote Desktop

    http://www.mqtechnologies.com

    • Like 2
×
×
  • Create New...