5

私は試した

var process = new Process
{
    StartInfo = new ProcessStartInfo
    {
        FileName = filename,
        UserName = "System",
        UseShellExecute = false,
    },
};

process.Start();

しかし、それは得ます

Win32Exception が処理されませんでした

ログインに失敗しました: 不明なユーザー名または間違ったパスワード

私は使用する必要がありますCreateProcessAsUserか?そのメソッドに渡す適切なパラメーターを取得するにはどうすればよいですか?

4

2 に答える 2

8

システム アカウントのパスワードは、Windows によって内部的に維持されます (私が思うに)。つまり、この方法で資格情報を提供してシステム アカウントとしてプロセスを開始しようとすると、最終的に失敗する運命にあります。

ただし、Windows サービスを (ab) 使用して、システム アカウントでプロセスを実行するために使用できる巧妙なトリックについて説明しているフォーラムの投稿を見つけました。

ヒント: システム アカウント (sc.exe) でプロセスを実行します。

または、Windows Sysinternals ツールのPsExec-sを使用すると、スイッチを使用してシステム アカウントでプロセスを実行できるようになります。

于 2011-07-13T13:44:09.290 に答える
0

ユーザー名はLocalSystem、プロセスを高い特権 (管理者グループのメンバー) で実行する場合、またはLocalService通常の特権で実行する場合に指定する必要があります。

編集:私の間違い LocalSystem & LocalService は通常のユーザーではないため、ユーザー名として提供することはできません。Kragenのソリューションは正しいものです

于 2011-07-13T13:40:59.380 に答える