2011-05-10 31 views
7

サービスから別のユーザーとしてプロセスを実行しようとしています。WindowsサービスからProcess.Startを実行するとアクセスが拒否される

Process.Start(applicationPath, params, account, SecureStringPassword, ""); 

サービスは「ローカルシステム」アカウントで実行されています。

accountパラメータは、「WORKSTATION6 \ Tester」のような文字列です。このユーザーはAdministratorsグループのメンバです。

「アプリケーションパス」は、すべてのユーザーがプログラムファイルを参照できるようにするためのものです。

しかし、プロセスを開始しようとするたびに「アクセス拒否」例外が発生します。何をアドバイスできますか?

+0

あなたは[プロセスモニタ](HTTPでそれを見てみました。 microsoft.com/en-us/sysinternals/bb896645)?それがアクセスできないものを正確に示すかもしれません。しかし、ユーザーの切り替えが問題になるかもしれないように思えます。 – Rup

+0

私はProcMonを試しましたが、私にとっては何も役に立たないことが分かります。ログにエラーはありません。 そして、ユーザー切り替えの問題はどうですか? –

答えて

0

SecureStringページでProcess.Startを使用する方法の例があります。私はあなたが何をする必要があるかと思いますhttp://msdn.microsoft.com/en-us/library/system.security.securestring(v=VS.90).aspx#Y682

は、このような最後のパラメータには、ユーザーアカウントのドメインを入れている://のTechNet:

Process.Start(applicationPath, params, "Tester", SecureStringPassword, "WORKSTATION6"); 
+0

それは助けません。私はまだ "アクセス拒否エラー"を持っています –

+0

私は同じ問題を抱えています...すでに.batファイルを呼び出そうとしましたが、WMI、偽装を使用しましたが成功しませんでした。 @E-Maxのアップデートはありますか? – Fernando

+7

問題が解決しない場合、これはなぜ受け入れられた答えですか? – Edgar

関連する問題