Не случайно заголовок поста со знаком вопроса. Пользователи инфраструктуры виртуальных ПК VMware Horizon View не раз задумывались о том, как можно отключить сессию пользователя в случае его неактивности на десктопе и затем потушить гостевую ОС и виртуальную машину (или сделать log off). Это нужно делать, прежде всего, в целях безопасности, чтобы брошенные и неактивные виртуальные ПК не висели доступными для взлома, а, во-вторых, по соображениям экономии аппаратных ресурсов, которые обслуживают неактивные сессии.
Как ни странно, у VMware (в отличие от Citrix) такой настройки из коробки нет (по крайней мере, об этом пишут тут). Если обратиться к статье официальной документации "Configuring Settings for Client Sessions", то мы увидим, что из похожего есть только настройка "Forcibly disconnect users". Она определяет время, через которое происходит отключение сессии пользователя после его логина в систему, но нам хотелось бы задать таймаут неактивности, после которого бы происходило отключение.
Похожей настройки нет и в User Environment Manager. Поэтому пользователи самостоятельно ищут выход из положения. Например, вот тут коллега использует встроенную в Windows утилиту для отключения сейссий tsdiscon.exe. Он пытался найти триггер в UEM, который бы запустил tsdiscon.exe и прервал сессию.
Триггеры в UEM можно добавлять в разделе Conditions:
Он попытался использовать триггер Workstation Locked и выполнить команду tsdiscon:
Однако оказалось, что данный триггер срабатывает не когда десктоп лочится со скринсейвером, а когда пользователь шевелит мышку на этом скринсейвере (и после этого сессия отпадает :).
Поэтому пока выход такой - использовать старинную утилиту Idle Monitor (или похожую), которая определяет время простоя (не двигается мышка и не нажимается клавиатура), а по истечении заданного времени исполняет нужную нам команду:
Эту утилиту можно прошить в золотой образ VMware View и запускать с флагом -h (hidden mode).
Но может есть какой-нибудь способ попроще? Никто не в курсе?