2

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

ただし、コンポーネントの操作で作成されたファイルは削除されません。

これらのファイルは、完全な読み取り、書き込み、および削除の権限を持つ管理者ではなく、コンポーネントを使用したユーザーによって所有されていることがわかりました。

これをどのように機能させるのですか?

4

1 に答える 1