Windowsインストーラーのセキュリティ/資格情報
-
30-09-2019 - |
質問
皆さん、
現在、Visual Studio 2010が構築されたMSIで奇妙な問題があります...
MSIを実行すると、いくつかのタスクを実行してから、構築したツールを実行します。このツールは、カスタムタスク内ではできなかったより高度な作業を実行します。
ここでの問題は、MSIがカスタムビルドツールを起動するときに、MSIを開始するのと同じ資格情報でそれを実行しないことです(つまり、管理ログイン)。
これを強制するためにMSIに渡すことができるパラメーターはありますか?それとも、資格情報をプロセスに渡すことができますか?
私のプロセスは使用を開始します Process process = Process.Start(procInfo)
何も空想的ではありません。また、パラメーター化されたユーザー名/パスワード/ドメインに渡す機能も注目しましたが、これはインストールしているユーザーによって異なります - これはインストーラーから何らかの形で抽出できますか?
歓迎されたヘルプ(または質問)。
デイブ
編集:明確にするために...ドメインアカウントの下でMSIを実行しています。カスタムプロセスをその「コンテキスト」の下で実行したいと考えています。現在、システムアカウントの下で(MyDomain Meではなく)、管理者として開始するかどうかに関係なく)開始します。 Windows Server Datacenter Editionを使用しています。
私も追加すべきです、これは政策の問題だと思いますが、何をチェックすべきか/どこでチェックするかわかりません...
解決
デフォルトでは、Windowsインストーラーは現在のユーザーとしてカスタムアクションを実行します。 MSIが昇格した場合、カスタムアクションは高さのユーザーとして実行されます。
管理者としてMSIを実行している場合、カスタムアクションが完全な管理者の特権を持つことを意味するわけではないことに注意してください。 Vista以下では、すべてのユーザーが標高を通じて管理者の特権を得ることができます。
したがって、カスタムアクションに管理者の特権が必要な場合は、 msidbcustomactiontypenoimpersonate 地元のシステムアカウントの下で実行されるようにフラグ。
これが問題ではなく、現在のユーザーデータにアクセスする必要がある場合は、詳細を教えてください。