我们有一个Windows应用程序,该应用程序的组件可以写入ProgramData文件夹。运行卸载程序时,不会删除此组件生成的文件。使用UAC :: RunElevated,我们首先将第三方组件安装到ProgramData中
SetOutPath "$RENDERER_INSTALL_DIR"
LogSet On
File /r "${MAGNIFY_DIR}/secRenderer/Arelle/*"
LogSet Off
AccessControl::GrantOnFile "$RENDERER_INSTALL_DIR" "(S-1-5-32-545)" "FullAccess"
在操作过程中,此组件将写入ProgramData中自己的安装目录
在卸载过程中,我们再次尝试使用UAC :: RunElevated删除上面创建的文件夹。
RMDir /r $RENDERER_INSTALL_DIR
但是,不会删除通过操作组件创建的文件。
我们已经观察到,这些文件归使用该组件的用户所有,而不是拥有完全读取,写入和删除权限的管理员所有。
我们如何做这项工作?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句