var info = new ActiveXObject("MSMQ.MSMQQueueInfo");
info.FormatName = /*<Queue name>*/;
// 0x80 = MQ_ADMIN_ACCESS
// 0x20 = MQ_PEEK_ACCESS
// 0x00 = MQ_DENY NONE
var mq = info.Open(0x80 | 0x20, 0x00);
var msg = mq.PeekCurrent(false, true, 0);
if (msg != null) {
WScript.echo("message found");
}
else
{
WScript.echo("Nothing");
}
mq.close();
然后我在服务器上运行了它,即使队列包含一千多条消息,
总是返回null。如果我删除MQ\u ADMIN\u访问,它会尝试连接到远程专用队列,然后超时(正如预期的那样,因为它会关闭以让消息累积)。如果随后启动远程专用队列,它将从中正确读取消息。
info.Open
我不是MSMQ的专家(恰恰相反),所以我可能犯了一个明显的错误,我看不出来。任何帮助都是受欢迎的。谢谢。
:是否可以窥视远程传出队列?目前,脚本正在我测试的传出队列所在的机器上运行,但并不是只有它有这些队列。我希望避免将脚本部署到任何地方,我更希望将它放在一个地方。谢谢。