È possibile utilizzare WMI per creare una coda di messaggi MSMQ (coda PRIVATA)?

StackOverflow https://stackoverflow.com/questions/102877

  •  01-07-2019
  •  | 
  •  

Domanda

Devo creare una coda di messaggi PRIVATA su una macchina remota e ho deciso di non poterlo fare con .NET Framework in modo semplice. Posso creare una coda di messaggi pubblici su un computer remoto, ma non uno PRIVATO. Posso creare una coda di messaggi (pubblica o privata) localmente.

Mi chiedo se qualcuno sa come accedere a MSMQ tramite WMI.

Modifica: non vedo nulla per farlo con l'utilizzo del provider MSMQ. Potrebbe essere difficile e utilizzare PSExec per accedere a un server remoto ed eseguire del codice.

È stato utile?

Soluzione

Sì, la creazione della coda è semplice in .NET, tuttavia non è possibile creare una coda privata su un computer remoto in questo modo. Ho pensato di aggiungere la creazione della coda al provider WMI MSMQ da qualche tempo ... Se ne hai bisogno per un prodotto / cliente reale, puoi contattarmi e prenderò in considerazione la priorità di questa funzione. Ti auguro il meglio, Yoel Arnon

Altri suggerimenti

Un post sul blog su MSMQ e WMI è qui: http://msmq.spaces.live.com/blog/cns ! 393534E869CE55B7! 210.entry

Dice che qui c'è un fornitore: http://www.msmq.biz/Blog/MSMQWmiSetup.msi

Dice anche che c'è un riferimento qui: http://www.msmq.biz/Blog/MSMQ%20WMI% 20Provider% 20Objects.doc

Spero che questo aiuti.

WMI non può farlo immediatamente. La risposta precedente ha un provider WMI oscuro, ma non sembra nemmeno supportare la creazione della coda.

Questo è molto semplice in .NET comunque! Non andrei fino a PSExec. MessageQueue.Create

Volevo anche creare code private remote, ma poiché .NET non lo supporta, abbiamo deciso di utilizzare invece code pubbliche remote. Se impostiamo le autorizzazioni di invio e ricezione sulle code come desiderato, dovrebbe andare bene.

Un'idea per aggirare il problema sarebbe quella di scrivere il proprio servizio Windows o servizio Web che viene eseguito sullo stesso computer in cui deve risiedere la coda. È possibile chiamare questo servizio in remoto tramite un socket o tramite http e il codice in esecuzione localmente potrebbe creare la locale coda privata.

Se si utilizza il formato del nome diretto per fare riferimento alla coda, è possibile inviare inviare e ricevere da una coda privata remota.

set qinfo = CreateObject("MSMQ.MSMQQueueInfo")
qinfo.PathName = ".\Private$\TestQueue"
qinfo.Label = ".\Private$\TestQueue"
qinfo.Journal = "1"
qinfo.Create

Copia il codice in un editor di testo, salva il file come .vb se eseguito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top