使用DSC资源配置HKEY_CURRENT_USER实际上会更新HKEY_USERS \ .DEFAULT

Chi*_*ago 2 dsc powershell-dsc

下面的DSC声明而不是HKEY_CURRENT_USER \ Console写入注册表项HKEY_USERS.DEFAULT \ Console。为什么?

Registry ConsoleFaceName
{
  Key         = 'HKEY_CURRENT_USER\Console'
  ValueName   = "FaceName"
  ValueData   = "Lucida Console"
  Ensure      = "Present"
}
Run Code Online (Sandbox Code Playgroud)

Tra*_*z13 5

写入的行为.DEFAULT是因为DSC本地配置管理器(LCM)正在作为本地系统运行,该系统没有当前的用户注册表配置单元。

如果您希望它更新特定用户,则需要使用PsDscRunAsCredential(链接的文档)运行,其中$Credential要更改其值的用户的凭据在哪里。

Registry ConsoleFaceName
{
  Key                   = 'HKEY_CURRENT_USER\Console'
  ValueName             = "FaceName"
  ValueData             = "Lucida Console"
  Ensure                = "Present"
  PsDscRunAsCredential  = $Credential
}
Run Code Online (Sandbox Code Playgroud)

在执行此操作之前,请阅读保护MOF文件。