私はMicrosoftVisualStudioを使用して、経験を積んだシンプルなリモートタスクマネージャーを作成しています。
使用したいのですProcess.GetProcesses(string);
が、リモートコンピュータプロセスを取得できないアクセス拒否の例外があります。実際、ユーザー名とパスワードを使用して認証する必要があるため、これは正常ですが、どのようにしたらよいでしょうか。
私はMicrosoftVisualStudioを使用して、経験を積んだシンプルなリモートタスクマネージャーを作成しています。
使用したいのですProcess.GetProcesses(string);
が、リモートコンピュータプロセスを取得できないアクセス拒否の例外があります。実際、ユーザー名とパスワードを使用して認証する必要があるため、これは正常ですが、どのようにしたらよいでしょうか。
この目的でWMIを使用してみてください
/// using System.Management;
// don't forget! in VS you may have to add a new reference to this DLL
ConnectionOptions op = new ConnectionOptions();
op.Username = "REMOTE_USER";
op.Password = "REMOTE_PASSWORD";
ManagementScope sc = new ManagementScope(@"\\REMOTE_COMPUTER_NAME\root\cimv2", op);
ObjectQuery query = new ObjectQuery("Select * from Win32_Process");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(sc, query);
ManagementObjectCollection result = searcher.Get();
foreach (ManagementObject obj in result)
{
if (obj["Caption"] != null) Console.Write(obj["Caption"].ToString() + "\t");
if (obj["CommandLine"] != null) Console.WriteLine(obj["CommandLine"].ToString());
}
Win32_Processクラスの詳細については、 MSDNを参照してください。
hth
編集:あなたの投稿をもう一度読んでください。私の投稿で説明されている手順はドメインにのみ適用されます。あなたはワークグループ内で作業していると思います。ごめんなさい。
最近、Windows7で管理者としてVisualStudioを実行しているときに、同様の問題が発生しました。プログラムをローカル管理者として実行するようにプログラムを昇格させると、リモートマシンとネットワーク共有のアクセス許可が失われるようです。 VSが管理者として実行されているときにVSからプログラムを実行する場合。これは、ドメイン全体の管理者アカウントを持っている場合でも発生します。
次のことを試してください。
これが役立つ場合は、管理者としてのVSの実行を停止できます。それは私のためにうまくいった。
これを行うには昇格が必要であるか、少なくともなりすましによってより強力なユーザーを使用する必要があると確信しています