Оптимизация времени входа на сервер и устранение неполадок

Опубликовано: 24 Апреля, 2023


Введение


Когда вы спрашиваете администраторов по всему миру о списке проблем SBC, обычно это номер 1 для печати и номер 2 для профилей (т. е. проблемы входа/выхода из системы). Администратору не всегда легко полностью понять процесс появления приложения на экране и действия сервера в фоновом режиме до того, как приложение будет полностью загружено. Понимание этого процесса дает вам преимущество при устранении неполадок процессов входа пользователей и проблем с профилями и обеспечивает стабильность серверов еще до того, как пользователи получат возможность подать жалобу.


Первый контакт при входе


Когда клиент Citrix устанавливает соединение с сервером, оно начинается с небольшого рукопожатия для идентификации между ними. Затем клиент сообщает серверу обо всех возможностях, которые ему разрешено делать, установленных на стороне клиента. (Если в клиенте Citrix ничего не отключено, будут отправлены все возможности.)


Следующим шагом является запуск процесса лицензирования. Сервер получает от клиента сигнал о том, на какой ОС он установлен, потому что, когда клиент 2k или XP pro, а сервер — Windows 2000, он имеет право на бесплатную TS-кал. Если нет, то сервер попытается его получить, а если это не удастся, сессия просто исчезнет без каких-либо подсказок, что очень сбивает с толку администраторов.


Имейте в виду, что то же самое может произойти, если сервер пытается обслуживать действующую лицензию, но у клиента нет прав на запись в «HKEY_LOCAL_MACHINESoftwareMicrosoftMSLicensingStore», что случалось несколько раз со старыми версиями Citrix. веб-клиенты ica32t.exe.


Если процесс лицензирования в порядке, пользователь получает экран входа в систему, представленный через gina. (Предполагая, что WI не используется, где проверка уже прошла). Затем загружается профиль пользователя. Gina вызывает процесс userinit, который опрашивает следующий раздел реестра для запуска: «HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonappsetup».


В этом ключе appsetup вы найдете записи для:



  • UsrLogon.Cmd (только для сервера терминалов. Устаревший способ запуска сценариев совместимости, но все еще существует)
  • cmstart.exe (Metaframe XP и выше)
  • CtxHide (Metaframe 3.0 и выше)

Затем процесс userinit запускает оболочку пользователя «explorer.exe». Если рабочий стол запущен, опрашивается ключ запуска реестра HKLM и HKCU, а ярлыки папки запуска срабатывают.



Совет. Дважды проверьте, не были ли случайно установлены приложения в ключе запуска, так как они будут запускаться каждым пользователем настольного компьютера, что приведет к ненужной трате ресурсов и/или конфликтующим экземплярам этого приложения.


Cmstart.exe


Так что же вызывает этот exe? Он запускает бесшовный движок wfshell.exe и запускает cltmgr.exe (менеджер клиента Citrix) для проверки наличия обновления клиента Citrix в системе обновления клиента. Так просто сказано; без записи cmstart.exe вы немедленно потеряете плавную функциональность.


Сбой процесса wfshell.exe — известная проблема среди администраторов Citrix, использующих Citrix XP. Это связано с тем, что процесс wfshell также отвечает за процесс автоматического создания клиентских принтеров. Таким образом, если вы установили драйвер, который не поддерживает TS на 100%, процесс автоматического создания столкнется с ограничением этого драйвера, что приведет к сбою wfshell для этого пользователя. Как только пользователь получает сообщение об ошибке wfshell, процесс прерывается, и принтеры вообще не создаются автоматически. Поэтому не забывайте всегда использовать драйверы принтера с компакт-диска ОС, где это возможно. Обязательно ознакомьтесь с моей предыдущей статьей на эту тему.


Теперь вы можете подумать, что это вредит только пользователю, вошедшему в систему, но это может повредить и другим пользователям. Зависший процесс wfshell может вызвать высокие пиковые нагрузки ЦП, поскольку он пытается восстановиться, и это влияет на всех. Пользователю также потребуется гораздо больше времени для входа в систему, так как процесс wfshell некоторое время будет пытаться автоматически создавать принтеры, пока зависает. Поэтому в следующий раз, когда пользователь сообщит об ошибке wfshell на экране, не отмахивайтесь от нее так легко и исследуйте этот вопрос.


Процесс обновления клиента cltmgr.exe запрашивает версию Citrix на стороне клиента из файла version.dat и запускает проверку системы, чтобы узнать, включено ли автоматическое обновление. Если вы не используете эту систему обновления, очень важно отключить использование системы базы данных обновлений клиента. На сервере просто запустите cudutil.exe и перейдите в базу данных, свойства и поставьте галочку «включить». Эта небольшая галочка значительно экономит время входа в систему даже на исправном сервере.



Совет. Если вы используете новые msi-клиенты от Citrix, систему обновления клиентов можно безопасно отключить, так как этот механизм не позволяет развертывать/обновлять msi-клиенты.


Профили


Пользователи имеют привычку создавать большие профили, если оставить все по умолчанию. Если вы используете настольные сеансы, включая полный офисный пакет, интернет-серфинг и т. д., профиль может стать огромным. Вы можете либо перенаправить важные папки из этого профиля на файловый сервер, используя GPO или скрипты, но дополнительным преимуществом является бесплатный продукт под названием «Flex Profile Kit» от Login Consultants. Получите вашу копию здесь. Этот инструмент для удаления профилей вернет ваши профили к нескольким сотням килобайт, и он будет загружаться как молния, я обещаю вам.


Комплект Flex Profile Kit является бесплатной инициативой. Если вашей компании не нравятся бесплатные и, следовательно, неподдерживаемые инструменты на сервере, существует множество эквивалентов, которые делают то же самое; Jumping Profiles от messerknecht, Managed Profiles от Managed Profile, Simplify Profile от Tricerat и FullControl от 2X. (И то некоторые, я, наверное, забыл).


При использовании перемещаемых профилей обязательно очищайте их, когда пользователи уходят. Инструкцию можно найти здесь. Или, если вы предпочитаете использовать для этого объект групповой политики, нажмите здесь.


Функциональность


Если какой-то функционал не нужен, отключите для него виртуальный канал. Я говорю об использовании com-порта, использовании порта lpt, использовании буфера обмена, необходимости большего, чем просто принтер по умолчанию. Все эти виртуальные каналы — это просто галочки в конфигурации вашего терминального сервера или конфигурации Citrix. Вместе они могут вызвать очень большую разницу в скорости. Просто для удовольствия проверьте время процесса входа в систему, когда все отмечено и все отмечено. (Даже если он не используется). Вы должны увидеть большую разницу.


Если вы используете решение Citrix Webinterface и хотите отключить некоторые виртуальные каналы для внешнего использования, но не для внутренних пользователей (при условии, что они не используют портал), вы также можете отключить функцию виртуального канала в файле template.ica.


Например, запись для отключения использования локальных дисков будет выглядеть так:



CDMAAllowed=Выкл.


Полный список этих параметров можно найти в справочнике по ini-файлу Citrix.


процесс выхода


Во время выхода из системы может случиться так, что строки реестра пользователей не будут освобождены приложением, и выход из системы будет выглядеть вечно, пока выгружается профиль. Решается это установкой на сервер службы «UPHClean. Получите вашу копию здесь. Если вы получаете ошибки об отказе в доступе и 1000 записей в средстве просмотра событий, это ваш инструмент-убийца.


Также может случиться так, что у вас есть плохо работающее приложение, которое, кажется, зависает во время процесса выхода из системы. Откройте консоль TS, чтобы увидеть процессы, которые имеет пользователь, выходящий из системы, и запишите все, кроме winlogon.exe, csrss.exe и explorer.exe, которые вызывают подозрение. (ctfmon — известный плохой процесс.)


Затем завершите процесс и посмотрите, успешно ли продолжается выход из системы. Если это так, вы нашли виновника.


Я надеюсь, что вы используете Citrix, потому что тогда вы можете установить, что плохой exe-файл будет уничтожен при выходе из системы через:



HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCitrixwfshellTWI
LogoffCheckSysModules REG_SZ = ctfmon.exe


Чтобы найти процесс, вы также можете использовать обозреватель процессов с sysinternals.com.


Если у вас все еще есть ощущение, что у вас есть проблема с профилем, убедитесь, что у вас загружены последние исправления для ОС и, при необходимости, для вашей версии Citrix. Если это не помогает, вы можете активировать отладку пользователя на сервере, чтобы отследить проблему с профилем, с которой вы столкнулись. Инструкции по активации можно найти здесь.


Вывод


В этой статье я попытался объяснить процесс входа в систему и то, как найти виновных в процессе входа/выхода из системы, которые могут вызвать серьезные проблемы у администратора SBC. После настройки этот процесс можно сократить до нескольких секунд, что упрощает принятие приложений такого типа.


Надеемся, что эти рекомендации и советы вернут вам контроль над ситуацией, дав вам время для другой работы, помимо устранения неполадок конечных пользователей.