在 "Exchange admin center" 中备份 "Mail flow - Rules"
Backing up of the "Mail flow - Rules" in the "Exchange admin center"
我需要备份 "Exchange admin center"
中的 "Mail flow - Rules"
$TransCollect = Export-TransportRuleCollection
$TransCollect1 = [System.Text.Encoding]::Unicode.GetString($TransCollect.FileData)
$TransCollect1 | Set-Content -path c:\temp.xml
但是我无法从 XML 文件中提取任何内容,因为 XML 文件的开头是一个特殊字符。
所以如果 运行 ....
[XML]$AppConfig = Get-Content –Path "c:\temp.xml"
我收到几个错误。
“[System.Text.Encoding]::Unicode.GetString”行本身是否有问题或
我如何删除这个特殊字符。
请参阅特殊字符的屏幕截图。它出现在文件的开头“
您看到的 "special character" 是 Unicode(又名 UTF-16LE)的 Byte Order Mark (\xFF\xFE
),因为您使用了 [System.Text.Encoding]::Unicode.GetString()
。要使用 Get-Content 读取该文件,您需要使用其 -Encoding
参数指定相同的编码:
[XML]$AppConfig = Get-Content -Path "c:\temp.xml" -Encoding Unicode
根据您使用的 PowerShell 版本,Get-Content 默认使用不同的编码:
- 5.1 及以下版本使用与系统活动代码页(通常是 ANSI)相对应的编码
- 版本 6 及更高版本使用 UTF8NoBOM
在 UTF16 中编写 XML 是否有特定原因?通常,UTF-8 与 XML
一起使用
我能够使用它并完全绕过特殊字符,并将交换规则转换为可提取格式。
$File_Collect = "c:\temp.xml"
$TransCollect = Export-TransportRuleCollection
Set-Content -Path $File_Collect -Value $TransCollect.FileData -Encoding Byte
[XML]$TransXMLCollect = Get-Content –Path $File_Collect
$TransXMLCollect.SelectNodes("//rule") | % { $_.InnerText }
我需要备份 "Exchange admin center"
中的 "Mail flow - Rules"$TransCollect = Export-TransportRuleCollection
$TransCollect1 = [System.Text.Encoding]::Unicode.GetString($TransCollect.FileData)
$TransCollect1 | Set-Content -path c:\temp.xml
但是我无法从 XML 文件中提取任何内容,因为 XML 文件的开头是一个特殊字符。
所以如果 运行 ....
[XML]$AppConfig = Get-Content –Path "c:\temp.xml"
我收到几个错误。
“[System.Text.Encoding]::Unicode.GetString”行本身是否有问题或
我如何删除这个特殊字符。
请参阅特殊字符的屏幕截图。它出现在文件的开头“
您看到的 "special character" 是 Unicode(又名 UTF-16LE)的 Byte Order Mark (\xFF\xFE
),因为您使用了 [System.Text.Encoding]::Unicode.GetString()
。要使用 Get-Content 读取该文件,您需要使用其 -Encoding
参数指定相同的编码:
[XML]$AppConfig = Get-Content -Path "c:\temp.xml" -Encoding Unicode
根据您使用的 PowerShell 版本,Get-Content 默认使用不同的编码:
- 5.1 及以下版本使用与系统活动代码页(通常是 ANSI)相对应的编码
- 版本 6 及更高版本使用 UTF8NoBOM
在 UTF16 中编写 XML 是否有特定原因?通常,UTF-8 与 XML
一起使用我能够使用它并完全绕过特殊字符,并将交换规则转换为可提取格式。
$File_Collect = "c:\temp.xml"
$TransCollect = Export-TransportRuleCollection
Set-Content -Path $File_Collect -Value $TransCollect.FileData -Encoding Byte
[XML]$TransXMLCollect = Get-Content –Path $File_Collect
$TransXMLCollect.SelectNodes("//rule") | % { $_.InnerText }