2016-10-03 117 views
1

我试图将所有Windows 10连接设置为metered以阻止自动更新。这就需要编辑值HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost下,但木偶代理(运行的LocalSystem)不能修改这些值抛出类似的错误:使用Puppet更改TrustedInstaller拥有的注册表项的权限

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", 
    } 
} 
+0

你能否提供清单作为你问题的一部分?谢谢! – ferventcoder

+1

@ferventcoder完成。 –

回答

2

这似乎是一个权限问题,其中LocalSystem只是没有凭据来更改这些注册表值。你能做下列之一:

  • 本地系统添加到右侧组(使用组资源),因此它将具有适当的权限,这样就可以调整这些键(快速搜索不看像这样的一组帐户,而专户)
  • 使用exec来制作
  • 可能授予被翻译到的TrustedInstaller特权(快速搜索并没有改变
  • 之前给 LocalSystem给这些键的写访问把它作为可能性)

它看起来像你需要像cacl.exe调用设置权限,覆盖作为所有者TrustedInstaller和授予LocalSystem所有权,然后在那里的权限。请先研究以了解在做出改变之前的这种影响,以及在做出改变后如何改变设置,如果想要改变它。

备注:ACL模块尚未处理注册表的权限,但它可能在将来。

+0

我将使用SubInACL(https://www.microsoft.com/zh-CN/download/details.aspx?id=23510)运行一些测试,如http://www.askvg.com/windows-tip -take-ownership-permission-of-registry-keys-from-command-line /另一种方式可以是纯PS如此处所示https://blogs.technet.microsoft.com/brad_rutkowski/2008/09/29/set- ACL-上的注册表键/ –