Powershell 写入已处理的MSMQ消息

Powershell 写入已处理的MSMQ消息,powershell,msmq,Powershell,Msmq,基本上,我有一个PowerShell脚本,它将根据失败的MSMQ消息的来源重新处理该消息,但我在尝试使用值为Processed的FailedQ节点下的新子节点“标记”任何已重新处理的消息时遇到了问题 这是一个读取原始队列的函数,我也试图在编写过程中使用它。当然,这基本上是重新调整的代码,我正试图适应我的目的。我肯定我在某个地方出了问题,但我不确定哪里出了问题,因为消息会重新处理,但从未写入任何内容 Function ReadandWriteFailedQueueFromHeaders {

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

这是一个读取原始队列的函数,我也试图在编写过程中使用它。当然,这基本上是重新调整的代码,我正试图适应我的目的。我肯定我在某个地方出了问题,但我不确定哪里出了问题,因为消息会重新处理,但从未写入任何内容

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")
}

您正在尝试编辑队列中的现有邮件吗?我以为消息是不可变的。@JohnBreakwell我正在试图编辑现有消息。我通过第三方工具(如Queue Explorer)成功地做到了这一点,我还使用Powershell覆盖了消息正文,但我无法针对特定的属性或值进行添加或更改。