2011-12-09 45 views
3

実稼働中の.NET2サービスに問題があります。このサービスは、さまざまなターゲットコンピュータからプロセス情報とログファイルを収集します。それは問題のない80のサイトで動作します。主にWindows 2000、Windows XP、およびWindows 2003上で実行されます。Windows 7のProcess.GetProcesses(文字列)経由でプロセス情報を読み取る際に例外が発生する

Windows 7ターゲットに対して実行すると、サービスがプロセス情報の読み取りを試みるたびに例外が発生します。

コードは次のようになります。

Process[] procs = System.Diagnostics.Process.GetProcesses("10.11.12.13"); 

情報:ターゲットコンピュータがpingに応答し、「adminUserは」資格証明書は、ターゲットコンピュータとサービスコンピュータの両方に存在します。

例外情報:

EX { "リモートマシンに接続できませんでした。"}のSystem.Exception {のSystem.InvalidOperationExceptionが} [のSystem.InvalidOperationException] { "リモートマシンに接続できませんでした。"}システム.InvalidOperationException

データ{System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}

のInnerException { "パフォーマンスカウンタからのプロセス情報を取得できませんでした。"}のSystem.Exception {システム.InvalidOperationException} [System.InvalidOperationExceptio N] { "パフォーマンスカウンタからのプロセス情報を取得できませんでした。"}のSystem.InvalidOperationException

データ{System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}

のInnerException {」ネットワークパスが見つかりません "} System.Exception {System.ComponentModel.Win32Exception}

メッセージ"パフォーマンスカウンタからプロセス情報を取得できませんでした。文字列

ソース "システム" の文字列

のStackTrace "System.Diagnostics.NtProcessManager.GetProcessInfosで(PerformanceCounterLiblibrary)\ rを\ nはSystem.Diagnostics.NtProcessManager.GetProcessInfos(文字列マシン名、ブールisRemoteMachine)で" 文字列

TargetSite {System.Diagnostics.ProcessInfo [] GetProcessInfos(System.Diagnostics.PerformanceCounterLib)} System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}

メッセージ "リモートマシンに接続できませんでした。"文字列

これをトラブルシューティングするには、対象のコンピュータのWindowsファイアウォールを無効にしましたが、役に立たなくなりました。誰でもアイデアはありますか?誰もが何か提案がある場合は


にその手順と、私がしようとしなければならないどのような順序でのように私は援助のために非常に感謝しています。


アップデート:私は、リモート(ターゲット)コンピュータを照会するために引数を渡す、監視コンピュータから「タスクリスト」コマンドを実行し、私は私がすることはできないですプロセス情報の同じ種類を見ることができましたプログラムによって取得する...以下のように見えた

tasklist /s 10.11.12.13 

返される情報::だから

... 
notepad.exe     672       1  4,916 K 
... 

なぜ.NETプロセス情報を見ることができない、???のよう

コマンドが見えました

+0

明らかに、リモートマシンに行く何らかのアクセス権の問題のようです。 –

+0

お返事ありがとうございます。私は同意する、私は根本的な問題を特定する最良の方法を知らない。 –

+0

'ネットワークパスが見つかりませんでした.'、最も内側の例外です。これはLAN管理者の仕事です。 –

答えて

1

はい、関数に実際のマシン名(IPアドレスではなく)を通過してみてください:

Process.GetProcesses("MyMachineName") 

コマンドプロンプトでipconfig /allを入力し、マシンの名前を知っている「ホスト名」を探すことができます。

+0

お返事ありがとうございます。私は投稿する前にそれを試みた。 –

7

「リモートレジストリ」サービスがターゲットコンピュータ上で実行されていなかったということが問題でした。

これは、ファイアウォールの攻撃が効果を発揮しなかった理由を説明しています。助けてくれた皆様に感謝します。

関連する問題