通过Salt-Stack在Windows中添加注册表项

时间:2014-06-17 17:46:34

标签: windows registry salt-stack

我的问题是使用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文件中的删除有问题吗?我认为"反思:真实"我会照顾镜像两条路径中的信息。

感谢您提供有关为什么不起作用的任何信息。

1 个答案:

答案 0 :(得分:1)

我找到了这个问题的答案。实际上有一个SaltStack的错误,它不考虑Windows注册表的32位/ 64位方面,只是调用常规的注册表。 Windows实际上会调用注册表重定向器来决定将密钥添加到wow6432node或常规节点的天气。

我实际上已经向SaltStack的github发布了一个错误。见这里:https://github.com/saltstack/salt/issues/13513#issuecomment-46373007

话虽这么说,我找到了解决这个问题的方法。如果您使用SaltStack实际通过命令行或批处理文件调用注册表编辑器。您可以指定要导入的.reg文件,然后指定以下参数以强制它到注册表的32位路径:

/reg:64

我希望这可以解答任何有关该主题的问题