Pouvez-vous utiliser WMI pour créer une file d'attente de messages MSMQ (file d'attente PRIVÉE)?
Question
Je dois créer une file d'attente de messages PRIVATE sur une machine distante et je suis convaincu que je ne peux pas le faire directement avec .NET Framework. Je peux créer une file de messages publique sur une machine distante, mais pas une file privée. Je peux créer localement une file de messages (publique ou privée).
Je me demande si quelqu'un sait comment accéder à MSMQ via WMI.
Modifier: je ne vois rien qui puisse le faire avec l'utilisation du fournisseur MSMQ. Peut-être devenez-vous délicat et utilisez PSExec pour vous connecter à un serveur distant et exécuter du code.
La solution
Oui, la création d'une file d'attente est simple dans .NET, mais vous ne pouvez pas créer de file d'attente privée sur un ordinateur distant de cette façon. Je réfléchis depuis un certain temps à l'ajout de la création de files d'attente au fournisseur WMI de MSMQ ... Si vous en avez besoin pour un produit / client réel, vous pouvez me contacter et je considérerai de donner une priorité à cette fonctionnalité. Bonne chance, Yoel Arnon
Autres conseils
Vous trouverez un article sur MSMQ et WMI sur le blog: http://msmq.spaces.live.com/blog/cns ! 393534E869CE55B7! 210.entry
Il est indiqué qu'un fournisseur existe ici: http://www.msmq.biz/Blog/MSMQWmiSetup.msi
Cela indique également qu'il existe une référence ici: http://www.msmq.biz/Blog/MSMQ%20WMI%% 20Provider% 20Objects.doc
J'espère que cela vous aidera.
WMI ne peut pas le faire par défaut. La réponse précédente contient un fournisseur WMI obsolète, mais il ne semble même pas prendre en charge la création de file d'attente.
C’est cependant très simple en .NET! Je n'irais pas aussi loin que PSExec. MessageQueue.Create
Je souhaitais également créer des files d'attente privées distantes, mais comme .NET ne la prend pas en charge, nous avons décidé d'utiliser à la place des files d'attente publiques distantes. Si nous définissons les autorisations Envoyer et Recevoir sur les files d'attente comme souhaité, cela ne devrait pas poser de problème.
Une solution de contournement serait d’écrire votre propre service Windows ou service Web qui s’exécute sur le même ordinateur que la file d’attente. Vous pouvez appeler ce service à distance via un socket ou via http, et votre code local peut créer la file d'attente privée locale .
Si vous utilisez le format de nom direct pour référencer la file d'attente, vous pouvez envoyer et recevoir à partir d'une file d'attente privée distante.
set qinfo = CreateObject("MSMQ.MSMQQueueInfo")
qinfo.PathName = ".\Private$\TestQueue"
qinfo.Label = ".\Private$\TestQueue"
qinfo.Journal = "1"
qinfo.Create
Copiez le code dans un éditeur de texte, enregistrez le fichier sous .vb
et exécutez-le.