В Active Directory вы можете сопоставить IP-адреса с клиентскими сайтами.
... а затем вы можете сопоставить объекты групповой политики с сайтами.
Это здорово и все такое, но у меня есть клиент, который быстро растет, и он ожидает, что в ближайшие год или два у них появятся сотни сайтов.
Наш стандарт именования в общих чертах основан на LOCODE, поэтому каждый сайт состоит из 7 символов - например, USHQZOF. Этот префикс используется для названия каждой машины.
Мне надоело создавать одну и ту же базовую политику где угодно.
Буквально следует формату:
Мне бы очень понравилось, если бы я мог создать политику, в которой я мог бы сказать:
... и покончить с этим навсегда.
Похоже, вы можете использовать множество переменных среды в настройках групповой политики (https://technet.microsoft.com/en-us/library/Cc753915.aspx), но я ничего не вижу для имени клиентского сайта.
Мне не повезло, или мне нужно пойти в «старую школу» и вызвать файл cscript / vbscript во время входа в систему, который ищет его и отображает соответствующие элементы?
(править: я знаю, что это можно сделать с файлом VBS - я делал это раньше. Это просто кажется ... нечистым ...)
я впервые пытаюсь помочь
У меня тоже была эта проблема, и я решаю ее, используя поведение по умолчанию dns Приоритизация локальных подсетей https://technet.microsoft.com/en-us/library/cc787373(v=ws.10).aspx
Так что в вашем случае просто нужно создать запись A для ваших сайтов fs Servers с именем SRV01
А затем просто создайте один gpo для монтирования и добавьте печать по умолчанию с srv01 \ и свяжите его с каждым сайтом
И когда клиент на сайте запрашивает srv01, DNS вернет правильный IP-адрес srv01 для этого сайта.
если вам все еще интересно узнать о VBS, этот код установит имя сайта в системную переменную.
'--- Get Site name ---
Set strSysinfo = CreateObject("ADSystemInfo")
strCurrentSite=strSysinfo.Sitename
'--- Write site name to system variables ---
Set objShell = CreateObject("WScript.Shell")
Set objSystemEnv = objShell.Environment("SYSTEM")
objSystemEnv("SiteName") = strCurrentSite
'--- Clean ---
Set strSysinfo = Nothing
Set objShell = Nothing
Set objSystemEnv = Nothing