2009-02-27 9 views
0

winformプログラムをログオンユーザーではなく別のユーザーとして実行する必要があります(タスクスケジューラで実行されます)。私は問題が私のアプリはGUIベースであり、コマンドラインベースではない(これは違いがある)と思うので、GUIを読み込んでそのことをしてから閉じる必要があります。これはおそらくXPまたはVistaの下ですか?C#winformプログラムをログオンユーザー以外のユーザーとして実行する

おかげ

答えて

5

は、スケジュールされたタスクは、ログイン中のユーザーに異なることができ、指定されたユーザー、「として実行」することができます。

このユーザーは、タスクを作成するとき、または既存のタスクのプロパティを編集するときに指定できます。

1

あなたのアプリをスケジュールされたタスクとして実行する必要がある場合、実際にUIを持つことはできません。最小限のため、コマンドライン経由で実際に実行できるはずです。

最良の方法は、必要に応じてインタラクティブに実行できるように、実際の処理とUIを分離することです。これはまた、あなたのアプリのテストをずっと簡単にするでしょう。

EDIT:タイピングのために編集して

0

を感じる私は、最初のオプションに投票したい、または追加の可能性を提供するために:あなたのコード内で使用偽装を。それは余計かもしれない/ここにあなたのニーズに合っていない可能性があります。

0

プログラムを実行する別の方法は、設定ファイルまたはDB接続に基づいてユーザーをプログラマチックに変更することです。一つのサンプルプロジェクトは、コードプロジェクトである:

http://www.codeproject.com/KB/cs/runas.aspx

は、この情報がお役に立てば幸いです。

0

あなたはProcess.Startメソッドを探しています。過負荷の1つは、ユーザー名とパスワードのペアを受け入れます。これらのユーザー資格情報を使用してプロセスが作成されます。

var app = Process.Start(@"c:\path\to\some\app.exe", userName, password, domainOrEmptyString); 
関連する問題