我正在安装自己的Windows服务。它需要它自己的环境。我知道没有工具可以处理它,所以我手动编辑注册表。
我有用PowerShell编写的服务安装脚本,所以我的第一个想法是这样做:
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\services\MyService" -Name Environment -Value "EnvVar=value" -PropertyType MultiString
问题是,虽然密钥出现在注册表中,但即使在powercycle之后,我的服务也未使用。
试验,我发现如果我在regedit中编辑它,它可以工作,密钥由我的服务使用。所以,我把它绞死了:
Invoke-Expression "reg.exe add ""HKLM\SYSTEM\CurrentControlSet\services\$name"" /v ""Environment"" /d ""EnvVar=value"" /t REG_MULTI_SZ /f"
现在它有效:D
我对New-ItemProperty
的使用有什么问题?我正在做管理员的一切,而且我有64 / 32bit的问题(我认为它们不适用于此 - 我的软件是64位,Windows是64位,一切都是64位:)
它为注册表添加了密钥,但未使用它,而使用regedit.exe
或reg.exe
添加相同密钥的工作正常。也许我正在打一些虫子? (操作系统:Windows Server 2012,64位)