Как мне получить номер версии приемника клиента citrix в c#

#c# #asp.net #citrix

#c# #asp.net #citrix

Вопрос:

Я запускаю c#.NET приложение в виде скрипта входа / выхода из системы на сервере XenApp. Приложение будет запускаться в контексте пользователя, и мне нужно иметь возможность получить номер версии приемника citrix (клиента), а также клиентскую ОС и имя компьютера.

Я довольно новичок в Citrix APIs, и, похоже, у них не очень хорошая документация — кто-нибудь знает, как это сделать?

Ответ №1:

Я нашел номер версии приемника citrix в реестре Windows на сервере XenApp:

 HKEY_LOCAL_MACHINESOFTWARECitrixIcaSession{SESSION_NUMBER}Connection
  

где {SESSION_NUMBER} можно найти в

 HKEY_USERS{SID_NUMBER}SoftwareCitrixSessionSfr
  

в качестве единственного подраздела в этом ключе, и где {SID_NUMBER} — это SID пользователя, вошедшего в сеанс XenApp.

Комментарии:

1. Могу подтвердить, что он все еще работает в 2020 году. Спасибо!

Ответ №2:

Если кому-то интересно, я потратил выходные на написание .NET-оболочки для Citrix CCM SDK и опубликовал код на GitHub:CcmSdk.Net

На данный момент проект нацелен .NET Standard 2.1 , потому что мне нужна была новая функциональность маршалинга UTF-8, которая недоступна в более старых версиях. Если требуется поддержка .NET Framework, вы можете просто скопировать код в проект .NET Framework 4.7 и использовать вместо него эту сборку.

Citrix Workspace отделяет Citrix Receiver от Citrix Workspace, и я думаю, что упомянутый здесь метод реестра не работает для определения клиентской версии Citrix Workspace, но для меня это все равно было очень полезно, потому что многие наши клиенты все еще используют старый Citrix Receiver.