我试图将所有的Windows 10连接设置为阻止自动更新。 这需要在HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost
下编辑值,但是Puppet Agent(以LocalSystem
身份运行)无法修改这些值,例如:
Error:/Stage[main]/Main/Node[default]/Registry_value[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost\Default]: 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_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost\3G': ensure => present, type => dword, data => "2", } registry_value { 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost\4G': ensure => present, type => dword, data => "2", } registry_value { 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost\Default': ensure => present, type => dword, data => "2", } registry_value { 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost\Ethernet': ensure => present, type => dword, data => "2", } registry_value { 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost\WiFi': ensure => present, type => dword, data => "2", } }
这似乎是一个权限问题,其中LocalSystem
只是没有凭据来更改这些注册表值。 您可以执行以下任一操作:
LocalSystem
对这些密钥的写入权限 它看起来像你需要像cacl.exe调用设置权限,覆盖TrustedInstaller作为所有者和授予LocalSystem所有权,然后在那里的权限。 请先研究一下,以了解这个变化之前的影响,以及如何改变这个设定,如果你想扭转这个设定。
注意:ACL模块尚未处理注册表的权限,但可能在将来。