Answers:
我相信takeown.exe获取文件的所有权,而不是注册表项。
C:\Users\Sathya>takeown /?
TAKEOWN [/S system [/U username [/P [password]]]]
/F filename [/A] [/R [/D prompt]]
说明:此工具允许管理员通过重新分配文件所有权来恢复对被拒绝的文件的访问。
通过执行
takeown /f //HKEY_LOCAL_MACHINE/MyKey/ \R \A
您所说的是取得位于网络位置的文件的所有权,HKEY_LOCAL_MACHINE共享名称为MyKey,这不是存储注册表项的方式。
此外,\R并\A应以正斜杠,而不是反斜杠,即指定,/R /A
获取注册表项的所有权,
打开注册表编辑器
单击要获得所有权的密钥。
在“编辑”菜单上,单击“权限”。
单击“高级”,然后单击“所有者”选项卡。
在“将所有者更改为”下,单击新所有者,然后单击“确定”。
要通过外部程序这样做,您需要一个像RegDACL这样的应用程序
RegDACL有什么用?RegDACL允许您查询和更改任何Windows NT注册表项的自主访问控制列表(DACL)。您当然可以使用RegEdt32程序来设置注册表权限,但如果您需要编辑多台计算机,那么您将面临相当无聊的工作,更不用说更容易出错。RegDACL使您能够使用批处理脚本来执行此作业。RegDACL的免费软件版本允许您定义预定义组的访问权限
正如上面提到的那样,提到的答案是行不通的。
而不是更改权限,有一个简单的程序,可以运行.reg文件,批处理文件,cmd,powershell或程序作为TrustedInstaller。
PowerRun是一个便携式免费软件,可以启动regedit.exe,Cmd.exe或其他具有与TrustedInstaller / Nt Authority / System相同权限的软件为什么需要它?有时只是以管理员身份运行还不够,可能是锁定或不可编辑的文件或注册表项,具有此强大权限的PowerRun工具最有可能解决这个问题,PowerRun不需要任何安装过程或额外的DLL文件。
或者可以使用Microsoft的psexec并以系统身份运行powershell.exe或cmd.exe。
psexec64 -i -s cmd.exe
psexec64 -i -s powershell.exe
然后在控制台中运行注册表命令