7

Visual Studio 2008 を使用して MSI インストール パッケージをビルドしています。インストール内には、多数のカスタム アクションがあります。OnAfterInstall カスタム アクション内で、インストールによって展開される exe を開始しようとします。exe は問題なく起動しますが、NT AUTHORITY\SYSTEM のセキュリティ コンテキスト内 (つまり、Windows インストーラ プロセスに付与された昇格された特権の下) で実行されます。最初にインストールを開始した現在ログオンしているユーザーのセキュリティ コンテキストで exe を実行する必要があります。この「縮小された」コンテキストで実行されるように、exeを開始する方法を知っている人はいますか。可能であれば、ユーザーにログイン資格情報を尋ねる必要は本当に避けたいです。

4

1 に答える 1

2

リモート デスクトップ サービス API を使用する必要があります: http://msdn.microsoft.com/en-us/library/aa383464%28v=VS.85%29.aspx。WinXPから利用可能です。

この API を使用すると、ログインしている任意のユーザー アカウントのコンテキストでアプリケーションを実行できます。使用するには、システムとして実行する必要があります。そしてあなたは。たとえば、WTSEnumerateSessions を使用してセッションを列挙し、WTSQueryUserToken によってユーザー トークンを取得し、このトークンを使用してアプリケーションを実行できます。

于 2010-09-07T20:25:43.583 に答える