删除文件时提示需要**权限, 通过命令行修改文件/目录的所有者和权限

删除文件失败,错误码是5,手动删除的时候提示需要 trustinstaller权限

通过cacls看一下所在目录的权限

C:\Windows\system32>cacls "C:\Program Files\Internet Explorer\iexplore.exe"
C:\Program Files\Internet Explorer\iexplore.exe NT SERVICE\TrustedInstaller:F
                                                BUILTIN\Administrators:R
                                                NT AUTHORITY\SYSTEM:R
                                                BUILTIN\Users:R
                                                APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:R
                                                APPLICATION PACKAGE AUTHORITY\所有受限制的应用程序包:R

以前从不知道哪里的渠道得知takeown和icacls组合使用的方法

C:\Windows\system32>takeown /f "C:\Program Files\Internet Explorer" /r /d n /a

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\en-US" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\ExtExport.exe" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\hmmapi.dll" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\iediagcmd.exe" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\ieinstal.exe" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\ielowutil.exe" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\IEShims.dll" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\iexplore.exe" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\images" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\sqmapi.dll" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\en-US\hmmapi.dll.mui" 现在由管理员组所有。

成功: 此文件(或文件夹): "C:\Program Files\Internet Explorer\images\bing.ico" 现在由管理员组所有。

C:\Windows\system32>icacls "C:\Program Files\Internet Explorer" /inheritance:e /c
已处理的文件: C:\Program Files\Internet Explorer
已成功处理 1 个文件; 处理 0 个文件时失败

再次删除,除了提示需要管理员权限,需要点击一下确定外,并没有什么异常。

两个命令都需要执行,执行了takeown之后,依然不能删除

icacls的参数参考

icacls | Microsoft Docs

takeown参考

takeown | Microsoft Docs

里面介绍了权限相关的介绍,可以

/grant授予权限

/deny拒绝权限

/remove移除权限

/setowner设置说有者

想要通过程序实现,可以参考Acess Control系列的windows api

Access Control (Authorization) - Win32 apps | Microsoft Docs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值