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

安装在此系统上的其中一个软件包使用HKCU / Software reg树进行许可,因此每个用户在其本地配置文件中都有许可证密钥。

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

有帮助吗?

解决方案

有几种方法可以达到你想要的效果 - 一种比另一种更笨重。终端服务器可能是部署的噩梦 - 用户可能无权运行 msiexec.exe ,因此MSI自我修复可能会失败。这就是为什么我通常更喜欢使用批处理文件脚本注册文件来解决您遇到的情况。

我会使用Microsoft的 Active Setup功能。这只是一个功能的奇特名称,它允许您“在登录时为每个配置文件运行一次”。以下是一个很好的解释: 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”命令可以是任何“runnable”,在你的情况下,我建议不要运行msiexec.exe,而是通过cscript.exe或其他批处理机制(CMD,REG,等等)运行vbscript。原因是我上面所说的:可能不允许msiexec.exe为终端服务器用户运行。换句话说,就像这样:

REGEDIT4

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

还有其他方法可以向每个用户的个人资料添加数据,例如 使用广告中的MSI快捷方式和自我修复 ,但我不建议将其用于终端服务器。有关使用MSI文件进行注册表设置的问题的信息,请参阅 此serverfault.com答案

其他提示

以编程方式挂载注册表配置单元,更改密钥,然后关闭配置单元。或者,您可以使用PSExec / runas来运行“更新密钥”。脚本为该用户,它也解决了“编辑HKCU”的问题。问题

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top