Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RegistryPolicyFile: Conflicting Key When Setting Same Policy For Multiple Target Types #23

Open
pyrostew opened this issue Oct 7, 2020 · 5 comments

Comments

@pyrostew
Copy link

pyrostew commented Oct 7, 2020

Details of the scenario you tried and the problem that is occurring

I am trying to set the same user configuration policy for all users of the PC however there is no target type for "All Users" and because the target type is not a Key parameter there can't be multiple instances of the resource with the same parameters named "Key" and "ValueName".

Verbose logs showing the problem

This is the error message:

PSDesiredStateConfiguration\Configuration : A conflict was detected between resources '[RegistryPolicyFile]SetDesktopWallpaperPathForAdmin (C:\Agent-1\_work\4\s\Package Builders\Win10BaseConfig\Config.ps1::164::7::RegistryPolicyFile)' and '[RegistryPolicyFile]SetDesktopWallpaperPath (C:\Agent-1\_work\4\s\Package Builders\Win10BaseConfig\Config.ps1::182::7::RegistryPolicyFile)' in node 'localhost'. Resources have identical key properties but there are differences in the following non-key properties: 'TargetType'. Values 'Administrators' don't match values 'NonAdministrators'. Please update these property values so that they are identical in both cases.

Suggested solution to the issue

Either add a target type that can add a policy for all users
Update Target Type to be one of the Key parameters
Update the Account Name Parameter to take an array of users and groups.

The DSC configuration that is used to reproduce the issue (as detailed as possible)

RegistryPolicyFile SetDesktopWallpaperStyle
{
  Key         = "Software\Microsoft\Windows\CurrentVersion\Policies\System"
  TargetType  = 'Administrators'
  ValueName   = "WallpaperStyle"
  ValueType   = 'Dword'
  ValueData   = "0"
}
RegistryPolicyFile SetDesktopWallpaperStyle
{
  Key         = "Software\Microsoft\Windows\CurrentVersion\Policies\System"
  TargetType  = 'NonAdministrators'
  ValueName   = "WallpaperStyle"
  ValueType   = 'Dword'
  ValueData   = "0"
}

The operating system the target node is running

OsName               : Microsoft Windows 10 Enterprise LTSC
OsOperatingSystemSKU : 125
OsArchitecture       : 64-bit
WindowsVersion       : 1809
WindowsBuildLabEx    : 17763.1.amd64fre.rs5_release.180914-1434
OsLanguage           : en-GB
OsMuiLanguages       : {en-GB}

Version and build of PowerShell the target node is running

Name                           Value
----                           -----
PSVersion                      5.1.17763.1432
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.1432
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Version of the DSC module that was used

Name                Version Path
----                ------- ----
GPRegistryPolicyDsc 1.2.0   C:\Program Files\WindowsPowerShell\Modules\GPRegistryPolicyDsc\1.2.0\GPRegistryPolicyDsc.psd1
@jcwalker
Copy link
Contributor

jcwalker commented Oct 8, 2020

Hi @pyrostew, does using UserConfiguration for the targetType give the desired result for your issue?

@pyrostew
Copy link
Author

pyrostew commented Oct 8, 2020

I Tried with the User Configuration as well, but again can only have one instance of the resource because AccountName is not a Key parameter, so at best can only set one group. If the AccountName parameter could take an array of names that would achieve what I need.

@jcwalker
Copy link
Contributor

jcwalker commented Oct 8, 2020

I would have to test to verify but I think if UserConfiguration is the targetType the policy will apply to all users so it would be unnecessary to apply same policy to multiple accounts. Is your scenario that you want to apply a policy to User1, User2, but not User3?

@pyrostew
Copy link
Author

pyrostew commented Oct 8, 2020

Oooh I see what you mean, sorry I misunderstood your last comment!

I had assumed (perhaps wrongly) that the UserConfiguration would only set the account that is running the config...

I can't test at the moment, my environment is having other issues that I'm currently resolving.

@pyrostew
Copy link
Author

I've managed to test your suggestion, and yes it did apply the configuration to all of the users. So my user case at the moment is fine. It still feels like there is a potential gap if a configuration needed to be applied to a number of specific users or groups. But I'll leave you to stew over the value of that.

Thanks for realigning my understanding!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants