我的问题是使用Salt-Stack在Windows中添加注册表项。我使用.sls文件来定义以下内容:
#AutoLogin on Windows Machines with a-testauto account
'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\AutoAdminLogon':
reg.present:
- value: '1'
- vtype: REG_SZ
- reflection: True
'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultUsername':
reg.present:
- value: user
- vtype: REG_SZ
- reflection: True
'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultPassword':
reg.present:
- value: password
- vtype: REG_SZ
- reflection: True
'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultDomainName':
reg.present:
- value: VLAB
- vtype: REG_SZ
- reflection: True
当Minion调用salt-master并应用注册表项时,一切正常,但键没有应用于正确的路径。它们被添加到以下内容中:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon
基本上我知道这是一台64位机器,而且这条路径代表了我试图操作的路径的64位等价物。但是,当我重新启动计算机时,Windows不使用64位版本的路径,而是使用原始路径。
我的问题是如何让Salt-Stack在我指定的实际路径中设置密钥而不是Wow6432Node?
我在sls文件中的删除有问题吗?我认为"反思:真实"我会照顾镜像两条路径中的信息。
感谢您提供有关为什么不起作用的任何信息。
答案 0 :(得分:1)
我找到了这个问题的答案。实际上有一个SaltStack的错误,它不考虑Windows注册表的32位/ 64位方面,只是调用常规的注册表。 Windows实际上会调用注册表重定向器来决定将密钥添加到wow6432node或常规节点的天气。
我实际上已经向SaltStack的github发布了一个错误。见这里:https://github.com/saltstack/salt/issues/13513#issuecomment-46373007
话虽这么说,我找到了解决这个问题的方法。如果您使用SaltStack实际通过命令行或批处理文件调用注册表编辑器。您可以指定要导入的.reg文件,然后指定以下参数以强制它到注册表的32位路径:
/reg:64
我希望这可以解答任何有关该主题的问题