ProgramDataフォルダに書き込むコンポーネントを持つWindowsアプリケーションがあります。アンインストーラを実行すると、このコンポーネントによって生成されたファイルは削除されません。 UAC :: RunElevated使用して、我々は最初の動作中はProgramDataNSIS RMDirが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プラグインを使用しないことをお勧めします。 – Anders