写入已处理的MSMQ消息

时间:2017-04-10 18:48:15

标签: powershell msmq

基本上我有一个PowerShell脚本,它将根据它来自哪里重新处理失败的MSMQ消息,但是我在尝试“标记”任何已使用FailedQ节点下的新子节点重新处理的消息时遇到问题价值Processed

这是读取原始队列的函数,我也试图在写入中抛出。当然这基本上是改变用途的代码,我试图适合我的目的。我确定我在某个地方出了问题,但我不确定在哪里,因为信息会重新处理,但没有任何内容写入。

Function ReadandWriteFailedQueueFromHeaders
{
    param(
        [Parameter(Mandatory=$true)]
        [System.Messaging.Message] $message
    )

    $rawheaders = [System.Text.Encoding]::UTF8.GetString($message.Extension)
    $reader = New-Object System.IO.StringReader($rawheaders)
    $writer = New-Object System.IO.StringWriter($rawheaders)
    $xml = [xml] $reader.ReadToEnd()
    $xmlwriter = [xml] $writer.Write("Processed", $xml)
    $header =  $xml.ArrayOfHeaderInfo.HeaderInfo | ? Key -eq    "FailedQ" | Select -ExpandProperty Value
    $headernode = $xml.ArrayOfHeaderInfo.HeaderInfo | ? Key -eq "FailedQ"
    return ('{2}{0}\private$\{1}' -f $header.Split('@')[1], $header.Split('@')[0], "FormatName:DIRECT=OS:" )
    $node = $xmlwriter.SelectSingleNode($headernode)
    $child = $node.CreateElement("Processed")
    $xmlwriter.DocumentElement.AppendChild($child)
    $node = $xml.SelectSingleNode("FailedQ")
}

0 个答案:

没有答案