WMI を使用して MSMQ メッセージ キュー (PRIVATE キュー) を作成できますか?
質問
リモート マシン上に PRIVATE メッセージ キューを作成する必要がありますが、.NET Framework を使用して単純な方法でこれを行うことはできないと判断しました。リモート マシン上にパブリック メッセージ キューを作成できますが、プライベート メッセージ キューは作成できません。メッセージ キュー (パブリックまたはプライベート) をローカルに作成できます。
WMI 経由で MSMQ にアクセスする方法を知っている人がいるかどうか疑問に思っています。
編集: MSMQ プロバイダーを使用してそれを行う方法は何もありません。場合によっては、注意が必要になり、PSExec を使用してリモート サーバーにログオンし、コードを実行する必要があります。
解決
はい、.NET ではキューの作成は簡単ですが、この方法ではリモート マシン上にプライベート キューを作成できません。しばらくの間、MSMQ WMIプロバイダーにキュー作成を追加することを考えていました...実際の製品や顧客に必要な場合は、私に連絡してください。この機能を優先することを検討します。すべて最高、ヨエル・アーノン
他のヒント
MSMQ と WMI に関するブログ投稿は次のとおりです。 http://msmq.spaces.live.com/blog/cns!393534E869CE55B7!210.entry
ここにプロバイダーがあると表示されます。 http://www.msmq.biz/ブログ/MSMQWmiSetup.msi
ここにも参考文献があると書かれています。 http://www.msmq.biz/Blog/MSMQ%20WMI%20Provider%20Objects.doc
お役に立てれば。
WMI ではこれをそのまま実行することはできません。前の回答には、不明瞭な WMI プロバイダーが含まれていますが、キューの作成さえサポートしていないようです。
ただし、.NET ではこれは非常に簡単です。PSExec までは行きません。MessageQueue.Create
リモート プライベート キューも作成したかったのですが、.NET ではサポートされていないため、代わりにリモート パブリック キューを使用することにしました。必要に応じてキューに送信および受信のアクセス許可を設定すれば、これで問題ないはずです。
回避策の 1 つのアイデアは、キューが存在する必要があるのと同じマシン上で実行される独自の Windows サービスまたは Web サービスを作成することです。このサービスはソケットまたは http 経由でリモートから呼び出すことができ、ローカルで実行されるコードで 地元 プライベートキュー。
直接名形式を使用してキューを参照する場合、 できる リモートのプライベートキューから送受信します。
set qinfo = CreateObject("MSMQ.MSMQQueueInfo")
qinfo.PathName = ".\Private$\TestQueue"
qinfo.Label = ".\Private$\TestQueue"
qinfo.Journal = "1"
qinfo.Create
テキストエディタでコードをコピーし、ファイルを次の名前で保存します。 .vb
s を選択して実行します。