当UAC被禁用时,C#程序没有获取所有权特权

当UAC被禁用时,C#程序没有获取所有权特权,c#,windows,privilege-elevation,C#,Windows,Privilege Elevation,基本上,我正在为我的工作编写一个工具,用另一台计算机上的文件的工作版本替换软件安装错误复制的损坏文件 此工具的一部分要求我拥有包含目标文件的文件夹的所有权(默认情况下,此文件夹归系统所有)。我是一名管理员,所以我可以通过Explorer毫无问题地完成这项工作,但我创建的工具无法从系统中获取所有权,但如果所有者是其他任何人(例如其他管理员),则可以毫无错误地获取所有权 我已经使用requireAdministrator构建了一个清单,这个工具能够从我的家庭计算机上的系统中取得所有权,但不能在我的工

基本上,我正在为我的工作编写一个工具,用另一台计算机上的文件的工作版本替换软件安装错误复制的损坏文件

此工具的一部分要求我拥有包含目标文件的文件夹的所有权(默认情况下,此文件夹归系统所有)。我是一名管理员,所以我可以通过Explorer毫无问题地完成这项工作,但我创建的工具无法从系统中获取所有权,但如果所有者是其他任何人(例如其他管理员),则可以毫无错误地获取所有权

我已经使用requireAdministrator构建了一个清单,这个工具能够从我的家庭计算机上的系统中取得所有权,但不能在我的工作计算机上


我相信这是因为UAC是通过集团政策禁用的。我有没有办法用管理员权限运行这个程序?谢谢你的帮助

如果您没有让您的程序执行所有权更改,而是执行
过程,那么它是否有效。启动
以运行
takeown
命令?我可以尝试一下,但我不确定这是否会产生影响。如果这个工具不是以管理员权限运行的,我想我最终也会遇到同样的问题。我怀疑我的问题与UAC有关。不过,我可以试一试。不,考虑到你描述的行为,UAC不太可能参与其中。这更有可能是代码中的bug,或者是环境中的其他一些奇怪之处。首先检查
takeown
是否工作。还可以通过
whoami/priv
检查您是否拥有
setakownershipprivilege
(应该是“已禁用”)(请注意,我所知道的任何情况下,现有文件夹所有者都不会影响您是否可以获得所有权。目前我最好的猜测是,这实际上是不同的权限。)我可以运行takeown和iCACLS分别获取文件夹的所有权和更改文件夹的权限。我可以把我的程序改为只使用这些命令,但似乎应该有更好的方法。我不认为这是代码中的错误,因为正如我所说,它在我的家庭网络上工作得非常完美,唯一的区别是在家里,我得到了一个UAC对话框。如果你没有让你的程序进行所有权更改,而是执行一个
过程,它会工作吗。启动
运行
takeown
命令?我可以尝试一下,但我不确定这会有什么不同。如果这个工具不是以管理员权限运行的,我想我最终也会遇到同样的问题。我怀疑我的问题与UAC有关。不过,我可以试一试。不,考虑到你描述的行为,UAC不太可能参与其中。这更有可能是代码中的bug,或者是环境中的其他一些奇怪之处。首先检查
takeown
是否工作。还可以通过
whoami/priv
检查您是否拥有
setakownershipprivilege
(应该是“已禁用”)(请注意,我所知道的任何情况下,现有文件夹所有者都不会影响您是否可以获得所有权。目前我最好的猜测是,这实际上是不同的权限。)我可以运行takeown和iCACLS分别获取文件夹的所有权和更改文件夹的权限。我可以把我的程序改为只使用这些命令,但似乎应该有更好的方法。我不认为这是代码中的一个bug,因为正如我所说的,它在我的家庭网络上工作得非常完美,唯一的区别是在家里我得到了一个UAC对话框。