NSIS RMDir无法删除ProgramData中用户创建的文件

J·拉伯特(J. Rabbitt)

我们有一个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

但是,不会删除通过操作组件创建的文件。

我们已经观察到,这些文件归使用该组件的用户所有,而不是拥有完全读取,写入和删除权限的管理员所有。

我们如何做这项工作?

不同的

要真正回答这个问题,这里有两个未知数。

为什么要包含UAC插件?只有降低您的系统访问权限才有用正确使用它也很棘手,因此我建议您尝试不使用它。

此第三方组件会更改ACL吗?卸载前请检查ACL。

文件系统虚拟化是否有可能欺骗您?检查VirtualStore文件夹。

是什么进程监视器说?您遇到ACCESS_DENIED或其他错误吗?

建议不要授予所有用户对ProgramData下文件夹的完全访问权限,并且任何需要此权限的组件都不遵循Windows徽标准则。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NSIS:中止创建过程

来自分类Dev

计数 NSIS 内的文件

来自分类Dev

提供用户安装Mysql(NSIS)

来自分类Dev

如何使用NSIS删除Windows%appdata%(或%programdata%)中的目录

来自分类Dev

NSIS 是否支持外部文件?

来自分类Dev

使用NSIS安装在ProgramData文件夹中

来自分类Dev

NSIS卸载程序以删除保存文件

来自分类Dev

NSIS:在 RequestExecutionLevel admin 之前获取当前用户

来自分类Dev

在NSIS安装程序中删除标题映像

来自分类Dev

NSIS-如何阻止它创建目录?

来自分类Dev

NSIS 运行时未创建按钮

来自分类Dev

在NSIS中检查特定的程序文件

来自分类Dev

NSIS从AppData检索和复制文件

来自分类Dev

使用NSIS脚本的Windows文件关联

来自分类Dev

NSIS获取UPX压缩的EXE的文件版本

来自分类Dev

NSIS - 我想卸载很多文件

来自分类Dev

Windows 7 中的 NSIS 文件关联更改

来自分类Dev

使用 NSIS 批量删除文件夹后获得响应

来自分类Dev

如何使用NSIS使用子文件夹创建目录?

来自分类Dev

即使我删除了它们,NSIS 也会安装它们

来自分类Dev

提取zip文件时出现NSIS脚本文件错误

来自分类Dev

NSIS“ MUI_DESCRIPTION_TEXT”无法按记录工作

来自分类Dev

NSIS无法在Windows XP中加载gdiplus.dll

来自分类Dev

使用NSIS安装程序存档当前安装的文件

来自分类Dev

使用NSIS对文件进行完全访问控制

来自分类Dev

使用nsis安装可执行文件的特权

来自分类Dev

当使用取消NSIS安装时,如何读取打包文件的内容?

来自分类Dev

NSIS安装程序(Unicode)以XML文件而不是“ <”“&lt;”的形式写入

来自分类Dev

如何在NSIS中制作自己的语言文件?