JPB*_*anc 13 c# registry windows-installer windows-security windows-server-2008-r2
为了将新的属性页安装到Active Directory SnapIn中,我需要写入W2K8 R2的以下注册表项(如Microsoft所述)
HKEY_LOCAL_MACHINE\SOFTWARE \微软\ MMC\SnapIns {E355E538-1C2E-11D0-8C37-00C04FD8FE93}\NodeTypes
此密钥由名为TrustedInstaller的特殊用户拥有.我在NET arround上发现了很多东西.
目前,这是它的工作方式,执行以下操作(用户是管理员组的成员):
我的项目是用C#完整编写的,有两件事我不喜欢这样做.
所以我的问题是:我是否遗漏了某些东西,是否有记录的方法来修改这样一个被记录为可修改的密钥?
有一个Stack溢出问题存在,答案说TrustedInstaller所有权,意味着密钥是系统安装的一部分而不是应用程序安装.对我来说,如果Microsoft记录了如何修改它的应用程序安装的密钥.
提前致谢.
所以我发现了我的一个问题.
如果要对添加的资源取得所有权以启用SeTakeOwnershipPrivilege,则允许您更改所有者SID.但是新的所有者Sid必须在调用者的令牌中,此外,Sid必须具有属性SE_GROUP_OWNER.所以在我的情况下,我无法将SID所有者更改为S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464(TrustedInstaller).我只能取得所有权,或者为"管理员"组提供所有权.我发现有一个解决方法之王可以将任意用户分配为所有者,即使其SID不在令牌中也是如此.授予管理员和备份操作员的SeRestorePrivilege权限,但默认情况下未启用.Enbling允许我将所有权归还给TrustedInstaller.
所以它可以执行以下操作(用户是管理员组的成员):
我使用InteropServices来调用Win32 AdjustTokenPrivileges API,它似乎是在C#中实现它的唯一方法
我将很快在我的博客上发布一个小工具,允许将所有权归还给TrustedInstaller.
编辑:对不起,我忘记了,您可以在Gist上找到代码.
| 归档时间: |
|
| 查看次数: |
8285 次 |
| 最近记录: |