#windows #registry #salt-stack
#Windows #реестр #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
Когда Миньон вызывает salt-master и применяет ключи реестра, все работает нормально, за исключением того, что ключи применяются не по правильному пути. Они добавляются к следующему:
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionWinlogon
В принципе, я знаю, что это 64-разрядная машина и что этот путь представляет собой 64-разрядный эквивалент пути, которым я пытаюсь манипулировать. Но когда я перезагружаю компьютер, Windows не использует 64-разрядную версию пути, а вместо этого использует исходный путь.
Мой вопрос в том, как мне заставить Salt-Stack устанавливать ключи по фактическому пути, который я указал, вместо Wow6432Node?
Что-то не так с моим объявлением в файле sls? Я думал, что «отражение: истина» позаботилось бы о зеркальном отображении информации по обоим путям.
Спасибо за любую информацию о том, почему это не работает.
Ответ №1:
Я нашел ответ на эту проблему. На самом деле в SaltStack есть ошибка, она не учитывает 32-битный / 64-битный аспект реестра Windows и просто вызывает обычный regedit. Windows фактически вызовет перенаправитель реестра, чтобы решить, следует ли добавлять ключ к wow6432node или обычному узлу.
На самом деле я опубликовал ошибку в github SaltStack. Смотрите здесь: https://github.com/saltstack/salt/issues/13513#issuecomment-46373007
При этом я нашел обходной путь для этой проблемы. Если вы используете SaltStack для фактического вызова редактора реестра через командную строку или пакетный файл. Вы можете указать файл .reg, который вы хотите импортировать, а затем вы можете указать следующий параметр, чтобы принудительно использовать для него 32-битный путь реестра:
/reg:64
Я надеюсь, что это ответит на вопросы кого-либо еще по этому вопросу