Как известно, в Active Directory есть замечательная (для тех, кто не хочет ставить программы «ручками», а денег на System Center нет) возможность устанавливать ПО на рабочие станции с помощью групповых политик. Функционал у неё ограничен, но для развёртки программ в небольшой организации хватает — действительно, не всё же Офис и WinRAR руками ставить.
Я достаточно успешно пользуюсь этим функционалом, и успел наловить несколько багов и «подводных камней», о последнем из которых хочу рассказать.
Use DFS, ffs!
Основная ошибка, которую я допустил при создании групповых политик — это местоположение источника MSI-инсталляций.
Я создал папку MSI на сервере Server1, и указывал GPO в качестве источников на находящиеся там пакеты. Всё работало — до тех пор, пока Server1 не дал дуба. И тут выяснилось, что изменение местоположения источника установки MSI так, чтобы пакет не переустановился у всей организации- задача нетривиальная. Для этого нужно:
Зайти в ADSIEdit.msc, там открыть Domain -> DC=Domain,DC=com -> CN=System -> CN=Policies
Там хранятся все групповые политики.
В свойствах нужной (каждой!) «установочной» GPO посмотреть её GUID (он есть на вкладке Details в gpmc.msc), найти его в ADSIEdit в этих самых Policies, развернуть, и зайти либо в Machine\Class Store\Packages, либо в User\Class Store\Packages (в зависимости от того, на компьютер или на пользователя ставится MSI-пакет).
В этом месте будут объекты класса PackageRegistration, по одному на каждый MSI-пакет, прикрученный к политике. Нужно в каждый их них зайти и заменить в атрибуте msiFileList UNC-пусть к источнику пакета.
Затем повторить процедуру для всех-всех политик установки MSI-пакетов.
… а так как к моменту трагической гибели Server1 пакетов у меня образовалось штук сто, данная процедура заняла полдня. Чтобы избежать этой работы, достаточно было всего лишь вместо простой шары \\Server1\msi создать DFS Domain Root вида \\domain.com\msi. О чём я и спешу вам всем тут рассказать.
P.S. Кстати о DFS — в процессе поисков решения для смены источника MSI для GPO, маленькая особенность распределенной файловой системы Windows мне очень помогла пережить даунтайм: при создании Domain DFS Root вида \\domain.com\msi она начала отзываться и на всех доменных контроллерах под тем же видом (т.е. \\Server1\msi, \\Server2\msi и т.д.) — хотя Server1, хоть и был доменным контроллером, в то время лежал развинченным на несколько частей у меня на столе.
Я достаточно успешно пользуюсь этим функционалом, и успел наловить несколько багов и «подводных камней», о последнем из которых хочу рассказать.
Use DFS, ffs!
Основная ошибка, которую я допустил при создании групповых политик — это местоположение источника MSI-инсталляций.
Я создал папку MSI на сервере Server1, и указывал GPO в качестве источников на находящиеся там пакеты. Всё работало — до тех пор, пока Server1 не дал дуба. И тут выяснилось, что изменение местоположения источника установки MSI так, чтобы пакет не переустановился у всей организации- задача нетривиальная. Для этого нужно:
Зайти в ADSIEdit.msc, там открыть Domain -> DC=Domain,DC=com -> CN=System -> CN=Policies
Там хранятся все групповые политики.
В свойствах нужной (каждой!) «установочной» GPO посмотреть её GUID (он есть на вкладке Details в gpmc.msc), найти его в ADSIEdit в этих самых Policies, развернуть, и зайти либо в Machine\Class Store\Packages, либо в User\Class Store\Packages (в зависимости от того, на компьютер или на пользователя ставится MSI-пакет).
В этом месте будут объекты класса PackageRegistration, по одному на каждый MSI-пакет, прикрученный к политике. Нужно в каждый их них зайти и заменить в атрибуте msiFileList UNC-пусть к источнику пакета.
Затем повторить процедуру для всех-всех политик установки MSI-пакетов.
… а так как к моменту трагической гибели Server1 пакетов у меня образовалось штук сто, данная процедура заняла полдня. Чтобы избежать этой работы, достаточно было всего лишь вместо простой шары \\Server1\msi создать DFS Domain Root вида \\domain.com\msi. О чём я и спешу вам всем тут рассказать.
P.S. Кстати о DFS — в процессе поисков решения для смены источника MSI для GPO, маленькая особенность распределенной файловой системы Windows мне очень помогла пережить даунтайм: при создании Domain DFS Root вида \\domain.com\msi она начала отзываться и на всех доменных контроллерах под тем же видом (т.е. \\Server1\msi, \\Server2\msi и т.д.) — хотя Server1, хоть и был доменным контроллером, в то время лежал развинченным на несколько частей у меня на столе.