WiXを使用して、ローカライズされたWindowsのディレクトリにインタラクティブユーザーを追加するにはどうすればよいですか?
-
05-07-2019 - |
質問
スウェーデン語の対話ユーザーを追加するにはどうすればよいですか
NT INSTANS\INTERAKTIV
または英語の対話ユーザー、
NT AUTHORITY\INTERACTIVE
またはプログラムフォルダーのACLへの書き込み権限を持つ他のローカライズされたユーザーグループ
この質問は実際には" secureObject を使用するにはどうすればよいですか?継承が削除されたことを理解していないため、 LockPermissionsテーブルを使用できません。 secureObject 権限には、 Directory ではなく CreateDirectory が必要なようです...
解決
Wixの最近のリリースでは、プロパティを使用して、よく使用される組み込みのユーザー名とグループ名のローカライズされた名前を取得できます。たとえば、 WIX_ACCOUNT_NETWORKSERVICE
には、ネットワークサービスアカウントのローカライズされた名前が含まれています。残念ながら、3.0.4513現在、 NT AUTHORITY \ INTERACTIVE
はその中にありません。
組み込みのユーザー名とグループ名の多くのプロパティを作成するサンプルMSIカスタムアクションがあります。 ここから入手。 CAをWixインストーラーに追加し、インストール実行シーケンスの早い段階でスケジュールします。
ローカライズされたアカウント名を取得したら、PermissionEx要素を追加してディレクトリのACLを変更します。例:
<Directory ...>
<Component ...>
<CreateFolder>
<PermissionEx User="[SID_INTERACTIVE]" .../>
</CreateFolder>
</Component ...>
</Directory ...>
他のヒント
同じアカウント名であるため、両方のアカウント名をACLに追加する方法はありません。表示される名前はSIDに対応しており、そのSIDは英語とスウェーデン語の両方のローカライズ版で同一です。 INTERACTIVEグループの場合、そのSIDは S-1-5-4
です。
長い間WiXをフォローしていませんが、アカウント名の代わりにACLのSIDを指定する方法があるはずです。よく知られているアカウントを避ける方法がない限り、よく知られているアカウントのアカウント名に決して頼らないでください。参考のため、よく知られているSIDのリストをご覧ください。
編集:この投稿は、カスタムアクションを使用してSIDをアカウント名に変換する問題の解決策を提供しているようです-明らかに、WiXは、PermissionまたはPermissionExオブジェクトにSIDを使用することですぐにサポートしていません。