command-line parameters citrix xenapp

command line - Pasar el parámetro de Client CMD a través del archivo ICA para iniciar la aplicación Citrix publicada



command-line parameters (1)

Estoy intentando enviar un parámetro de cadena simple del código de la aplicación web C # usando la llamada de línea CMD al archivo ICA al servidor Citrix XenApp para iniciar una aplicación publicada específica (macro Macro Scheduler compilada en exe), NO todo el escritorio citrix.

Tengo una aplicación web con código de línea cmd usando

"C:/Program Files (x86)/Citrix/ICA Client/Wfica32.exe" C:/someICAfile.ica /Param:"/username=SomebodysName" .

También probé la sintaxis del parámetro: /username=SomebodysName, /Param:"/username=SomebodysName"

y alrededor de un millón de otras combinaciones de citas y barras.

Usé Citrix QuickLaunch para escribir mi archivo ICA, en el que lo único que cambié fue InitialProgram=#ApplicationName /Param (agregué el / Param). También probé /username y /Param=SomebodysName y tampoco puedo hacer que ninguno funcione. Incluso intenté codificar el nombre allí y no puedo procesarlo.

El exe espera un parámetro " username " y cuando se llama localmente desde el símbolo del sistema cmd, funciona usando UsernameProgram.exe /username=somebodysname . Me aseguré de incluir el " %* " al final de la commandlineexecutable de commandlineexecutable ejecutable en las propiedades de ubicación de la aplicación Citrix Xenapp para garantizar que pueda aceptar un parámetro de línea de comando.

Todo esto está usando C # y XenApp 6. Todo funciona, excepto pasar el parámetro, y no tengo idea de dónde se pierde el parámetro, si es que llega a algún lado. Siento que he probado todas las combinaciones de ''/'' s y ''s, así que si alguien pudiera ayudarme con la sintaxis, ¡realmente lo agradecería! Intenté investigar el SDK de Cliente ICA en el c # código, pero parece que solo hace manualmente lo que hará un archivo ICA externo. Si esto está mal, sin embargo, hágamelo saber. Me estoy acercando al punto en el que voy a intentarlo independientemente, porque estoy completamente sin ideas. Por favor ayuda.

¡Gracias!


Terminé llamando un archivo .bat desde mi código C # usando lo siguiente:

Process proc_Launch = new Process(); proc_Launch.StartInfo.FileName = "CreateTempICA.bat"; proc_Launch.StartInfo.RedirectStandardError = false; proc_Launch.StartInfo.RedirectStandardOutput = false; proc_Launch.StartInfo.WorkingDirectory = @"C:/WorkingDirectory"; proc_Launch.StartInfo.Arguments = @"""/username=somebodysname"""; proc_Launch.Start();

referencia: Ejecuta el archivo bat en c # con el código .exe y .def

En el archivo .bat, creo un archivo ICA que pasa en el parámetro nombre de usuario de la siguiente manera:

@echo off :makefile pushd %temp% set icafile=temp.ica @echo [WFClient] > %icafile% @echo Version = 2 >> %icafile% @echo HttpBrowserAddress=ServerName:8080 >> %icafile% @echo ProxyType=Auto >> %icafile% @echo ConnectionBar=0 >> %icafile% @echo [ApplicationServers] >> %icafile% @echo ApplicationName= >> %icafile% @echo [ApplicationName] >> %icafile% @echo Address = ApplicationName >> %icafile% @echo InitialProgram=#"ApplicationName"%1 >> %icafile% @echo ClientAudio=On >> %icafile% @echo AudioBandwidthLimit=1 >> %icafile% @echo CGPAddress=*:#### (use actual numbers here though) >> %icafile% @echo CDMAllowed=On >> %icafile% @echo CPMAllowed=On >> %icafile% @echo DesiredColor=8 >> %icafile% @echo ConnectionBar=0 >> %icafile% @echo TWIMode=On >> %icafile% @echo Compress=On >> %icafile% @echo TransportDriver=TCP/IP >> %icafile% @echo WinStationDriver=ICA 3.0 >> %icafile% @echo BrowserProtocol=HTTPonTCP >> %icafile% @echo [Compress] >> %icafile% @echo DriverName= PDCOMP.DLL >> %icafile% @echo DriverNameWin16= PDCOMPW.DLL >> %icafile% @echo DriverNameWin32= PDCOMPN.DLL >> %icafile% start %icafile% popd

El% 1 en el componente InitialProgram es donde se usa el argumento del código C #.

referencia: http://www.virtualizationadmin.com/files/whitepapers/MetaframeXP/Connecting_to_a_Citrix_server_from_the_command_line.htm

El último paso es asegurarse de que en Citrix Delivery Console se asegure de que las propiedades de Ubicación de la aplicación publicada para CommandLineExecutable tengan un "% **" después de él, incluidas las comillas dobles. Creo que al agregar el segundo asterisco, el parámetro pasa a través de la validación de línea de comando y permite que se use cuando se abre la aplicación. De cualquier manera, sin embargo, funcionó con dos de ellos y no con uno de ellos.