ProgramData フォルダーに書き込むコンポーネントを含む Windows アプリケーションがあります。アンインストーラーを実行しても、このコンポーネントによって生成されたファイルは削除されません。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
ただし、コンポーネントの操作で作成されたファイルは削除されません。
これらのファイルは、完全な読み取り、書き込み、および削除の権限を持つ管理者ではなく、コンポーネントを使用したユーザーによって所有されていることがわかりました。
これをどのように機能させるのですか?