我有一些运行共享应用程序的Windows 2008 Serverterminal服务服务器。 不幸的是,要正常运行应用程序有一些HKEY_CURRENT_USER设置,需要写入每个用户的registry时,他们login。这些设置将随着时间的推移而改变,所以我不想编辑C:\ Users \ Default \ NTUser.dat; 我希望他们通过Active Directory应用。
我已经确定了相应的条目,并将它们导出为registry文件,并将它们另外转换为ADM。 我想configurationActive Directory组策略的某些部分,将.REG或ADM作为login脚本(对于所有用户)加载到这些服务器上(服务器在它们自己的OU中)。
我怎样才能做到这一点? 我已经在OU中制定了一个政策,但是另外难倒了; 我尝试将ADM加载到GPOpipe理编辑器,但似乎没有做任何事情…
也许这是“Active Setup”( 为所有现有用户和所有新用户添加HKCU密钥和值的最佳方式? )和Loopback Processing( http://support.microsoft.com/kb/231287 )的一些组合,但我的知识GPO非常有限。
您是说只有当用户login到某些计算机时,才会将用户设置应用于用户? 听起来很难,呃? 这并不难。 这听起来像是一个环回组策略处理的工作!
假设如下:
[Domain] mydomain.com.org.net.local | |--[OU] Special Computers | | | |-- [Computer] COMPUTER 1 | | | |-- [Computer] COMPUTER 2 | ... | |--[OU] User Accounts | |--[User] Bob | |--[User] Alice ...
您希望为所有login到“特殊计算机”OU中的计算机的用户应用用户设置(如运行login脚本或应用其他types的GPO用户设置)。 但是,当他们login到其他OU中的计算机时,您不希望应用这些特殊设置。
创buildGPO并将其链接到“特殊计算机”OU。 在该GPO中指定要应用的所有与用户相关的设置。
(“但是等等,Evan!用户的帐户对象不在'特殊计算机OU'中!”是的,我知道这个,留在这里我见过的大多数ADpipe理员不理解环回策略处理和害怕,我曾经看到过使用“特殊计算机”等方式创build用户login时使用的次要用户帐户的可怕的黑客攻击…>不寒而栗<)
在您创build的GPO中,进入计算机“pipe理模板”,“系统”,“组策略”,并find“用户组策略环回处理模式”的设置。 启用此设置。 在“模式”框中,如果您希望忽略所有用户的“正常”组策略设置,并且仅应用此新GPO中的用户策略设置,请select“replace”。 如果希望GPO中的用户设置在应用所有正常用户设置后应用,请select“合并”。
我的意见是,这比在login脚本中涉及“If computer == blah”的“黑客”要干净得多。
我的build议是使用组策略首选项(GPP)registry设置,而不是使用login脚本。 它将应用一次,在用户的registry中保留默认设置,但用户可以在将来自由地更改设置,而不会在每次login时都“砸”它们。
如果这些是Windows Server 2008计算机,就像标签所说的那样,那么真的没有理由不使用GPPregistry设置。 看看下面的文章了解更多的细节。 这是W2K8的一个非常好的function,你应该利用这个function。
你需要决定你要走哪条路线 – ADM或registry。
您可以通过GPO设置自定义registry设置。 编辑GPO,然后浏览到此部分:
计算机configuration – 策略 – Windows设置 – 安全设置 – registry
无论您在此处定义的键组合是否将应用于该OU中的机器。
此外,您应该更改GPO的“ 范围”筛选以应用于您感兴趣的AD中的对象。它可能已默认为已通过身份validation的用户 。 如果这是正确的,那么就离开它。 我怀疑你将需要改变它,但它适用于域计算机 。 不要担心,它只适用于该OU中的域计算机和所有子OU
编辑:
编辑提供如何在GPObatch fileregistry导入和login脚本。
所以,首先你需要创build一个batch file来导入你想要的registry项。
创build一个batch file,并给它任何你喜欢的名字,例如import_reg_keys.bat
编辑batch file,并以其最基本的forms使用以下命令:
reg.exe add HKCU \ blah \ blah \ blah / v MyNewSetting / t REG_SZ / d 1 / f
将blah \ blah \ blahreplace为您感兴趣的子项,用值replaceMyNewSetting,用值types(REG_SZ,REG_MULTI_SZ,REG_EXPAND_SZ,REG_DWORD,REG_BINARY,REG_NONE)replaceREG_SZ,然后将数据replace为1想在你的新的价值观。
保存batch file,并将其复制到域NETLOGON共享(\\ yourdomain.loc \ netlogon) – 您将需要域pipe理员权限来执行此操作。
编辑您已经创build的GPO,然后导航到“用户configuration – 策略 – Windows设置 – 脚本”
双击右边的LOGON项目,点击ADD,点击BROWSE,在顶部的地址栏中input\\ mydomain.loc \ netlogon并按下回车键,然后从列表中select你的batch file
单击打开,单击确定,单击确定,closuresGPO编辑器
返回到GPOpipe理MMC,双击您的新GPO,然后在右侧selectSCOPE选项卡。
在底部说过滤,确保您只有域计算机(yourdomain \域计算机)和身份validation的用户。 如果你想在未来进一步locking这个,那么这就是你如何规定谁或什么必须适用这个政策。
给我买一杯啤酒
在netlogon共享中使用batch file(而不是直接在GPO中进行设置)的好处是编辑起来要快得多。
PS。 将有问题的服务器移动到该OU(应该是成员服务器OU的子OU)
这是另一种方法:
你已经有一个用户login脚本? (在configuration文件下的AD中的用户对象中定义)。 如果你这样做,然后将这些行添加到该脚本:
如果“%computername%”==“MyServer001”reg.exe add HKCU \ blah \ blah \ blah / v MyNewSetting / t REG_SZ / d 1 / f
如果“%computername%”==“MyServer002”reg.exe add HKCU \ blah \ blah \ blah / v MyNewSetting / t REG_SZ / d 1 / f
当用户login时,需要为每个需要此密钥的服务器添加上述行数。这样,每次用户login时,脚本都会查看他们正在login的计算机名称,并且只会应用registry更改机匹配列出的之一。 如果他们login到自己的工作站,机器名称将不在列表中,并且不能获得密钥