#windows #registry #puppet
#Windows #реестр #puppet
Вопрос:
Я пытаюсь настроить все подключения к Windows 10 metered
на блокировку автоматических обновлений. Для этого требуется редактирование значений в разделе HKLMSOFTWAREMicrosoftWindows NTCurrentVersionNetworkListDefaultMediaCost
, но агент Puppet (работающий как LocalSystem
) не может изменять эти значения, вызывая ошибки, такие как:
Error:/Stage[main]/Main/Node[default]/Registry_value[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNetworkListDefaultMediaCostDefault]: Could not evaluate: Unexpected exception from Win32 API. detail: (Access denied.). ERROR CODE: 5. Puppet Error ID: F46C6AE2-C711-48F9-86D6-5D50E1988E48
поскольку ключ принадлежит TrustedInstaller
.
Возможно ли изменить эти значения автоматическим способом?
Обновить.Проблемная часть site.pp
:
node default {
registry_value { 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNetworkListDefaultMediaCost3G':
ensure => present,
type => dword,
data => "2",
}
registry_value { 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNetworkListDefaultMediaCost4G':
ensure => present,
type => dword,
data => "2",
}
registry_value { 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNetworkListDefaultMediaCostDefault':
ensure => present,
type => dword,
data => "2",
}
registry_value { 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNetworkListDefaultMediaCostEthernet':
ensure => present,
type => dword,
data => "2",
}
registry_value { 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNetworkListDefaultMediaCostWiFi':
ensure => present,
type => dword,
data => "2",
}
}
Комментарии:
1. Можете ли вы предоставить манифест как часть вашего вопроса? Спасибо!
2. @ferventcoder Готово.
Ответ №1:
Похоже, это проблема с разрешениями, у которой LocalSystem
просто нет учетных данных для изменения этих значений реестра. Возможно, вы можете выполнить одно из следующих действий:
- добавьте LocalSystem в нужные группы (используя ресурс группы), чтобы у него были соответствующие разрешения, чтобы вы могли настраивать эти ключи (быстрый поиск не выглядит так, как будто это учетная запись группы, а специальная учетная запись)
- используйте exec, чтобы предоставить
LocalSystem
доступ на запись к этим ключам до внесения изменений - возможно, предоставить привилегию, которая преобразуется в TrustedInstaller (быстрый поиск также не показывает эту возможность)
Похоже, вам понадобится что-то вроде cacl.exe вызовите, чтобы установить разрешение, переопределив TrustedInstaller в качестве владельца и предоставив LocalSystem право собственности, а затем привилегии. Пожалуйста, сначала изучите, чтобы понять последствия этого, прежде чем вносить изменения, и как отменить настройку после ее внесения, если вы хотите отменить ее.
Примечание: модуль ACL еще не обрабатывает реестр для получения разрешений, но это может произойти в будущем.
Комментарии:
1. Я проведу несколько тестов с использованием SubInACL ( microsoft.com/en-us/download/details.aspx?id=23510 ), как описано здесь askvg.com/… Другим способом может быть чистый PS, как показано здесь blogs.technet.microsoft.com/brad_rutkowski/2008/09/29 /…