2

私のマシンはドメイン D1 にあり、ドメイン D2 のリモート サーバーにパブリック MSMQ があります。vpn 経由で D2 に接続しています。つまり、D2 でマシンを RDP し、MSMQ にアクセスできます。

私が望むのは、システムを RDP せずに MSMQ にアクセスする (メッセージ数を知る) ことです。だから私はこれのためのアプリケーションを構築します。偽装を使用して D2 のユーザーを偽装しました (つまり、D2 の資格情報を使用しました) が、問題は、「パブリック」MSMQ ( Messagequeue.GetPublicQueue() を使用) にアクセスできず、例外がメッセージ「A workgroup installation computer」と共にスローされることです。操作をサポートしていません。」しかし、 MessageQueue.GetPrivateQueue() を使用すると、プライベート キューのコレクションが返されました。

messageCount に MSMQManager を使用してみました Path = @"Direct:OS:machine\publicqueue"; FormatName=null; new MSMQManager.inIt(machineName, path , FormatName); これも、キューが存在しないか開いていないかのいずれかで例外をスローします。しかし、キューが正常に機能していることを確認できます。

4

2 に答える 2

0

ほんの少しのプログラミングを快適に行うことができますか? そうでない場合、PowerShell を使い慣れていますか?

いずれにせよ、あなたが探している答えが含まれているように見えるので、この投稿をチェックしてください。

頑張ってください、これが役に立てば幸いです

于 2012-12-20T15:13:10.973 に答える
0
  • あなたの問題は、リモートで作業している可能性があります。

このメソッドGetPublicQueuesByMachine()は、実際にはリモート アクセスでは利用できません。

これは、MSDN ドキュメントの機能マトリックスで確認できます: MessageQueue.GetPublicQueuesByMachine :

次の表は、この方法がさまざまなワークグループ モードで使用できるかどうかを示しています。

 Workgroup mode                         Available
 --------------                         ---------
 Local computer                         No
 Local computer and direct format name  No
 Remote computer                        No
 Remote computer and direct format name No
  • また、キューのアクセス権限も確認してください。

前の提案が間違っていたとしても、ネットワーク内の特定のユーザーのアクセス権を試すのと同じくらい簡単かもしれません。

MSDN の記事パブリック キューとプライベート キューには次のように記載されています。

パブリック キューの既定のセキュリティ アクセスでは、メッセージをパブリック キューに送信する権限がすべてのユーザーに付与されます。読み取りアクセスには、特定の権限を付与する必要があります。

于 2012-12-28T10:57:52.543 に答える