Set "deny" permission to a registry key via command line

Using a single console command line, we need to deny SYSTEM account access to a specific registry key.

Subinacl worked for that without issues on past operating systems, but it doesn't seem to behave properly with Windows 10 x64, and other sources are reporting the same.

SetACL doesn't seem to know anything about denying permissions on registry, or I couldn't find the proper syntax for it.

How you guys would recommend us to achieve this?
technetAsked:
Who is Participating?
 
McKnifeCommented:
subinacl.exe /subkeyreg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\3ware /deny=system=f

Open in new window

works here as expected. Try it on an elevated command prompt.
1
 
McKnifeCommented:
Why use the command line and not GPOs? Or is the key in HKCU?
1
 
technetAuthor Commented:
GPO is not an option. Surprisingly, doesn't seem to exist a CLI tool to accomplish this on W10, so even a powershell script would make us happy.
0
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

 
McKnifeCommented:
Could you help me helping you by answering these 2 questions, please? So just that I understand it.
Where's the key, and why not use GPO registry permission deployment?
1
 
technetAuthor Commented:
Sure. Thanks for taking this issue into attention, McKnife.

Key is at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion;

No GPOs because machines targeted for this are not part of a domain. Deployment of this change should be as straightforward as possible, wiht no GUI;
0
 
technetAuthor Commented:
Almost there, McKnife! Works but not on the key that we need to change. Even running as nt authority\system (!).
On your system you can deny system account on a subkey of the key that I've provided?
What could be stopping us?
0
 
technetAuthor Commented:
When I try to take key's ownership , I receive an "access denied".
0
 
David Johnson, CD, MVPOwnerCommented:
Why do you need to deny system? System is the top of the heap for ownership. you would have to explicitly ALLOW a n account before removing system otherwise NOTHING can change it.
0
 
technetAuthor Commented:
I know, it's not an easy task on W10. Administrators group has full control by default, but they aren't the owner.

Can't change owner of those keys using:
subinacl /keyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /setowner=administrators /grant=administrators=f

Changing owner using elevated regedit GUI still doesn't allow subinacl to /deny=system=f.

What changed from Windows 7 to disallow this change, and how overcome it?
0
 
McKnifeCommented:
it works. It will not work on all subkeys, maybe. Please tell me on what subkeys it doesn't work for you.
1
 
McKnifeCommented:
show th output of your command.
1
 
technetAuthor Commented:
Output says that permissions were changed, but it doesn't happen.

For practical effects, I'm considering as a good approach McKnife's solution.

Thank you all!
0
 
McKnifeCommented:
Give me one example of a subkey that does not work, please.
1
 
technetAuthor Commented:
Winlogon is one of them that didn't worked on our machines.
0
 
McKnifeCommented:
It works as long as you use an account that may change permissions. The administrator account does not have full access to all subkeys of winlogon - that's why it fails without first doing these 3:
1 take ownership of the regkey and all of the subkeys you are going to modify
2 give yourself full permissions
3 change permissions for others
1
 
technetAuthor Commented:
I wasn't able to change those permissions even running CMD under system credentials. This worked perfectly with XP and 7.

Could you please show the commands needed for that which worked on your setup?

As always, thank you, McKnife.
0
 
McKnifeCommented:
I have to admit that I hardly find the time to look for the syntax to automate all this: registry taking ownership and disabling inheritance. BUt I can assure you that I did not see a difference to win7, yet. When a key is not modifiable although you should have permissions to do it, it might be that it is protected. Some keys are protected by filter drivers, for example the keys for windows defender cannot be modified by a script because Microsoft wants to keep malware from doing that.

I might find the time later, will make a calendar entry.
1
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.