ユーザーが管理者権限なしでアプリケーションを実行できるようにする必要があるという問題がありますが、同時に、NLog でログ ファイルを作成できるようにする必要があります。ログ ファイルを作成するには管理者権限が必要です。アプリケーションがインストールされている同じフォルダ。
アプリケーションディレクトリの下に という名前のディレクトリを作成し、 inno setup で権限をLogs
付与しようとしています。everyone-modify
アプリケーション ディレクトリではなく、この新しい Logs フォルダーに書き込むように NLog 構成をセットアップします。これにより、アプリケーションが管理者以外によって実行されている場合でも、NLog はログを作成するのに十分な権限を持ちます。
私の質問は、これはこれを行う適切な方法ですか? 私は NLog や InnoSetup の経験があまりないので、不足しているものがあるかどうか、またはこれがセキュリティ上の問題を引き起こす可能性があるかどうかはわかりません。
NLog構成セクションを次のように設定しました
NLog
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="el" xsi:type="EventLog" log="ASI" layout="${message} ${exception:innerFormat=tostring:maxInnerExceptionLevel=10:format=tostring}" />
<target name="fl" xsi:type="File" fileName="Logs\iDocClientLog.log" layout="${date}: ${message} ${exception:innerFormat=tostring:maxInnerExceptionLevel=10:format=tostring}" />
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="el,fl" />
</rules>
</nlog>
そして、私の InnoSetup インストーラー スクリプトDirs
セクションはこのようなものです
イノセットアップ
[Dirs]
Name: "{app}\Logs"; Permissions: everyone-modify