web-dev-qa-db-ja.com

SysinternalsのPortmon:エラー2

ローカルポートに接続しようとすると、コンピュータ-> Connect localPortmon v。3.02を使用して、エラーメッセージエラー2、小さなエラーダイアログボックス:

Enter image description here

管理者としてツールを実行します(そうでない場合、エラー6が表示されます)。

ちなみに、これはWindows 7 x64です。 32ビットでは、Windows 7 x86で正常に動作します。この問題を修正するにはどうすればよいですか?

56
JAG

SysinternalsのPortmonは、32ビットバージョンのWindowsでのみ動作します。 64ビットをサポートしていません(おそらくドライバーは署名されていません)。

Portmonホームページから:

  • 走る:
    • クライアント:Windows XP(32ビット)以降(32ビット)。
    • サーバー:Windows Server 2003(32ビット)以降(32ビット)。
61
swatkat

Windowsエクスプローラーで、portmon.exeを右クリックします-> プロパティを選択-互換性タブをクリックし、Windowsで実行XP互換モード:Windows 7 64ビットの場合と同様に機能します。

9
Dom

「エラー2」は「指定されたファイルが見つかりません」、つまり、必要なDLLファイルが見つかりません。

もともと、ネットワークの場所からPortmonを実行しようとしたときにこのエラーが発生しました。これにより、セキュリティの信頼が破られ、Portmonが信頼されなくなりました(または単に検索パスを何らかの方法で台無しにしました)。

Windows 7 64ビットのコピーでは、Microsoft Dependency Walker (depends.exe)により、PORTMSYS.SYS(Portmon.exeによって作成/ロードされたファイル)、ci.dllに対する未解決の依存関係があることがわかります。 clfs.sys、hal.dll、およびkdcom.dll。

それらは

code integrity
common log file system
hardware abstraction layer
kernel debugger com

ライブラリが存在し、実際に欠落しているわけではありません。ライブラリがある場合、Windowsは起動しません。ただし、SysWow64にはこれらのファイルのコピーは表示されません。これは、問題がportman.sysにないことを示唆しています。問題は、Windows the7/64ビットのwin32互換性レイヤーにあります。デバッグを適切にサポートしていません。

現在は2018です。Portmonの64ビットバージョンはありません。シリアルポートはレガシー標準です。 Windows 7の問題は、Windows 8.1のリリースによって修正されました。ただし、一部のVisual StudioユーティリティまたはWindows 7にバックポートされたセキュリティ更新プログラムで問題が修正される可能性はわずかです。おそらくSysWowとデバッグに精通している人がコメントするでしょう。

3
david

Windows x64用のportmonの代わりに、仮想COMポートのペアのエミュレータと、物理ポートと仮想ポートの1つを接続し、ロギング機能を実行する簡単なプログラムを使用できます。

仮想COMポートのペアを作成するには、次を使用できます。

  • com0com (できればバージョン「com0com-2.2.2.0-x64-fre-signed」。署名されたx64ドライバーが含まれているため)
  • 仮想シリアルポートエミュレーター (VSPE)、x64で起動するたびにドライバーの購入を求められますが、拒否しても機能します。

シンプルなマッピングおよびロギングプログラムを見つけることができます。 here または自分で作成することもできますが、簡単です。

アクションのシーケンスは次のとおりです。

  • エミュレータを使用して仮想COMポートのペアを作成します(たとえば、COM28とCOM29)
  • 外部デバイスをコンピューターのCOM1ポートに接続します。外部デバイスとのやり取りを聞きたいプログラムでは、通信用に(СОМ1の代わりに)ポートCOM28を設定します。
  • マッピングプログラムで、ポートCOM1とCOM29をバインドしてログに記録するように設定します(ポートボーレートの設定を忘れないでください)。
2
Dmitro25

AccessPort http://sudt.com/en/ap/download.htm を使用しましたが、うまく機能します。ポートモンに非常に似ている

1
codevision

私はまだ試していませんが、 この質問com0com に言及しています。 2つの仮想シリアルポートを作成し、それらの間のヌルモデムケーブルをエミュレートします。 64ビットWindowsで実行できると主張しています。実際のポートから仮想ポートの1つに入力をパイプするだけのソフトウェアが付属しているかどうかはわかりません。 FAQの1つに、ロギングをオンにできると書かれています。

最悪の場合、実際のポートから仮想ポートの1つにデータをパイプしてすべて記録する独自の小さなプログラムを作成できると思います。

オープンソースの代替案に関するこの質問 もあり、いくつかのプロジェクトに言及しています。

1
Don Kirkby

ネットワークドライブ/パスなどからPortmonを起動しないでください。

ハードディスクドライブにコピーします。デスクトップで、再起動して再試行してください!

0
Found elswhere

Portmonを互換モードで実行すると、動作します。

チェックこのバージョンのWindowsで古いプログラムを実行する

それは言います:

プログラム互換性トラブルシューティングツールを実行するには:

  1. [スタート]ボタン[スタート]ボタンの画像をクリックし、[コントロールパネル]をクリックして、プログラム互換性のトラブルシューティングツールを開きます。検索ボックスに「トラブルシューティング」と入力し、[トラブルシューティング]をクリックします。 [プログラム]で、[以前のバージョンのWindows用に作成されたプログラムを実行する]をクリックします。
  2. トラブルシューティングの指示に従ってください。

上記は、Windowsで古いアプリケーションを実行しているときの一般的な状況に対するMicrosoftの公開説明です。

しかし、私は簡単に言うことができます。

  1. Portmon.exeを右クリックします
  2. 「互換性の問題のトラブルシューティング」などのメニューを選択します(外国版のWindowsを使用しているため、英語でそのメニューの正しい名前が表示されません)。
  3. 自動モードを選択
  4. 問題を検出し、Windows XP(SP2)モードを推奨します
  5. それを選択して、Portmonを再度実行します。

うまくいくことを願っています!

0
Taehoon Kee