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

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

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

在此处输入图片描述

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

在此处输入图片描述

这一切都很棒,但是我有一个正在快速发展的客户,他们预计在未来一两年内将拥有数百个站点。

我们的命名标准大致基于 LOCODE,因此每个站点都是 7 个字符——例如“USHQZOF”。该前缀用于命名每台机器。

我已经厌倦了制定同样的基本政策到处

它实际上遵循以下格式:

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

如果我能制定一项政策,我会非常高兴地说:

  • 将驱动器 O 映射到 \\(site-name-from-ad)SRV01\officeshare
  • 将主打印机映射到 \\(site-name-from-ad)SRV01\copier

...并彻底解决此事。

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

是我运气不好吗,还是我需要采用“老办法”,在登录期间调用 cscript/vbscript 文件来查找并映射相应的项目?

(编辑:我知道可以用 VBS 文件来完成——我以前做过。但它看起来……不干净……)

答案1

这是我第一次尝试帮助

我也遇到了这个问题,我使用 DNS 默认行为优先考虑本地子网来解决它 https://technet.microsoft.com/en-us/library/cc787373(v=ws.10).aspx

因此,对于您来说,只需要为您的网站 fs 服务器创建一个名为 SRV01 的 A 记录

然后只需创建一个 gpo 来挂载并使用 srv01\ 添加默认打印并将其链接到每个站点

当站点中的客户端请求 srv01 时,dns 将返回该站点的 srv01 的正确 ip 地址

答案2

如果您仍然对 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

相关内容