使用组策略首选项中的“客户端站点名称”

在Active Directory中,您可以将IP地址映射到客户端站点。

在这里输入图像说明

…然后您可以将组策略对象映射到站点。

在这里输入图像说明

这是一件好事,但我有一个快速增长的客户,他们预计在未来一两年内将有数百个网站。

我们的命名标准松散地基于LOCODE,所以每个站点都是7个字符,例如“USHQZOF”。 该前缀用于命名每台机器。

到处都在制定相同的基本政策,我感到厌倦。

它的字面意思是:

  • 将驱动器映射到\\ USHQZOFSRV01 \ officeshare
  • 将主打印机映射到\\ USHQZOFSRV01 \复印机

我真的很喜欢它,如果我可以创build一个政策,我可以说:

  • 将驱动器O映射到\\(site-name-from-ad)SRV01 \ officeshare
  • 将主打印机映射到\\(站点名称从广告)SRV01 \复印机

…好好做。

看起来您可以在您的组策略首选项( https://technet.microsoft.com/en-us/library/Cc753915.aspx )中使用大量的环境variables,但是我没有看到任何关于客户端站点名称的信息。

我运气不好,还是我需要去“旧学校”,并在login时调用一个cscript / vbscript文件,查找并映射适当的项目?

(编辑:我知道这可以用VBS文件来完成 – 我以前做过,似乎…不洁净…)

是我第一次尝试帮忙

我也有这个问题,我解决它使用dns defaul行为优先化本地子网https://technet.microsoft.com/en-us/library/cc787373(v=ws.10).aspx

所以在你的情况下,只需要为您的网站fs服务器创build名为SRV01的Alogging

然后创build一个gpo来挂载并添加srv01的默认打印\并将其链接到每个站点

而当网站上的客户要求srv01时,DNS将为该网站返回srv01的正确IP地址

如果你仍然对VBS感到好奇,这段代码将把站点名称设置为一个系统variables。

'--- 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