1
我感興趣是在無法更改所有者「管理員」從「系統」註冊表項
HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\ Windows中的鍵\ CURRENTVERSION \ SETUP \ PnpLockdownFiles
這些密鑰給予系統用戶完全訪問權限,並且只能讀取管理員權限。我登錄了管理員帳戶。我正在使用2012 R2。
我可以
right click -> Advanced -> Change onwer -> type "Administrator" -> OK -> Apply
通過註冊表編輯器更改所有者下面是我曾嘗試在C#中的API。兩個失敗的訪問被拒絕
key = Registry.LocalMachine.OpenSubKey(test, RegistryKeyPermissionCheck.ReadSubTree, RegistryRights.TakeOwnership);
RegistrySecurity rs = new RegistrySecurity();
rs.SetOwner(new NTAccount("Administrator"));// Set the securitys owner to be Administrator
key.SetAccessControl(rs);
也試過的Win32 API:
SetSecurityInfo(getRegistryKeyHandle(key), SE_OBJECT_TYPE.SE_REGISTRY_KEY, SECURITY_INFORMATION.OWNER_SECURITY_INFORMATION, ownerSid, groupSid, dacl, sacl);
如果您啓用了UAC,則需要以管理員身份明確運行該應用程序。看到這個問題,並回答如何要求應用程序與提升的權限運行:http://stackoverflow.com/questions/14800089/forcing-an-application-to-admin-from-config-file – itsme86 2014-09-19 01:32:42
您必須啓用SeTakeOwnershipPrivilege爲了分配一個對象的所有權。請注意,這隻允許您將所有權設置爲您自己的帳戶或您所屬的組。或者,如果啓用SeBackupPrivilege和SeRestorePrivilege,則可以將所有權分配給任何人。 (如果您有對該對象的WRITE_OWNER訪問權限,您也可以自行指定對象的所有權而無需權限。) – 2014-09-19 03:39:16
在這種情況下,由於您試圖將所有權分配給管理員帳戶,因此您需要以管理員帳戶(不只是任何舊的管理帳戶,但該特定帳戶)或啓用備份和恢復權限。請注意,通常將所有權分配給管理員而不是管理員。 – 2014-09-19 03:43:51