Многие пользователи решения для виртуализации корпоративных ПК предприятия VMware View 4.5 сталкиваются с ситуацией, когда необходимо выполнить определенные действия на виртуальном десктопе в зависимости от того, какое клиентское устройство использует пользователь. Это важно, например, для использования правильного ближайшего принтера (например, у нас есть больница, где врач ходит между кабинетами и может грузиться в свой десктоп), а также монтирования определенных общих сетевых ресурсов (шар).
В VMware View есть OEM-компонент .ThinPrint, отвечающий за универсальную печать в виртуальных ПК. Помимо прочего, он умеет делать так называемый Location Based Printing - то есть монтировать в виртуальный ПК необходимый принтер в зависимости от того, с какого клиента пользователь залогинился в виртуальный ПК. Процедура настройки данного механизма приведена в документе "ThinPrint GPO Configuration for Location-Based Printing".
Правила назначения клиенту принтера могут быть основаны:
IP-адресе клиента
MAC-адресе клиента
Имени пользователя
Членстве пользователя в группах
Имени хоста клиента
Чтобы применить эти правила, вам нужно сначала зарегистрировать библиотеку на VMware View Connection Server. Находится она по следующим путям:
Далее вы увидите новую групповую политику AutoConnect Map Additional Printers for VMware View в Group Policy Editor. Она доступна в ветке Software Settings (сначала создайте новый GPO):
Откройте ее и впишите необходимые параметры политики для печати в зависимости от различных условий (например, MAC-адреса клиента, откуда происходит логин через View Client):
Значения параметров тут достаточно очевидны (например, Client Name - имя хоста, откуда идет доступ с View Client). Здесь важно два момента: укажите точное имя принтера в колонке Printer Name и имя драйвера в колонке Printer Driver (легко ошибиться, берете из виртуального ПК), а также для сетевого принтера не забудьте указать префикс IP_ в колонке IP Port.
Теперь бросьте этот GPO в OU, где у вас лежат ваши виртуальные ПК, к которым вы применяете данную политику печати в зависимости от расположения клиентского устройства. После применения политики, на виртуальном ПК должен появиться ключ реестра:
Можно также делать все эти вещи по-старинке, с помощью скриптов. Хорошее описание того, как с помощью VBS можно смонтировать сетевые шары можно найти у Barry в статье "VMware View and Location Based Scripts". Вот так, например, с помощью VBS можно получить имя клиентской машины, откуда мы заходим в виртуальный ПК:
Option ExplicitDim WshShell, ClientName, objFSO
Set WshShell = WScript.CreateObject(“WScript.Shell”)
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
ClientName = WshShell.RegRead(“HKCU\Volatile Environment\ViewClient_Machine_Name”)
MsgBox ClientName
Ну а в ветке HKCU\Volatile Environment\ лежит вот что:
Все это можно использовать при написании скриптов.