在Windows Server 2003上更新每个配置文件的注册表

问题描述 投票:1回答:2

我有一个用于终端服务的Windows Server 2003系统。我们不使用漫游配置文件。我们不使用登录脚本。我大约有三十到四十个帐户登录到该系统,因此具有本地配置文件。

安装到该系统上的软件包之一使用HKCU /软件注册表树进行许可,因此每个用户的本地配置文件中都具有许可密钥。

如何确定性地更新所有这些不同的配置文件注册表?

windows scripting profile registry
2个回答
1
投票

[Active Setup is no longer advisableoriginal source)。


有几种方法可以实现您想要的目标-一种比另一种笨。终端服务器可能是部署的噩梦-用户可能没有运行msiexec.exe的权限,因此MSI自修复可能会失败。因此,对于遇到的情况,我通常更喜欢使用批处理文件脚本reg文件

我将使用Microsoft的活动设置功能。这只是功能的奇特名称,它使您可以“在登录时每个配置文件运行一次”。这是一个很好的解释:http://www.etlengineering.com/installer/activesetup.txt

这里是MSI文件的示例活动设置条目(这是* .reg文件的内容:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode]]
"StubPath"="[SystemFolder]msiexec.exe /q /fou [ProductCode]"

“ StubPath”命令可以是任何“可运行的”,在您的情况下,我建议不要运行msiexec.exe,而是通过cscript.exe或其他批处理机制(CMD,REG,Etc ...)运行vbscript。原因是我上面所说的:可能不允许终端服务器用户运行msiexec.exe。换句话说,是这样的:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\MyProduct]
"StubPath"="[SystemFolder]cmd.exe /k C:\SomeScript.cmd"

还有其他将数据添加到每个用户的个人资料的方法,例如using advertised MSI shortcuts and self-repair,但对于终端服务器,我不建议这样做。有关将MSI文件用于注册表设置的问题,请参见this serverfault.com answer


0
投票

以编程方式安装注册表配置单元,更改键,然后关闭配置单元。或者,您可以使用PSExec / runas以那个用户运行“更新密钥”脚本,这也解决了“编辑HKCU”问题

© www.soinside.com 2019 - 2024. All rights reserved.