我想将我的任务放在非集群服务器上,然后将它们作为集群任务导入到已构建和测试的新集群上。
以下是我尝试过的:
cls
$xmlFilename="i:\Scripts\ImportScheduledTasks\CleaupMessageLog.xml"
$xmlContents = get-content $xmlFilename
Register-ClusteredScheduledTask -TaskName "TestXMLTask" -TaskType AnyNode -Xml $xmlContents
XML 可以导入 Windows 任务计划程序,但它并不是“集群”任务。
这是我运行上述代码时出现的错误:
Register-ClusteredScheduledTask : Cannot process argument transformation on parameter 'Xml'. Cannot
convert value to type System.String.
At C:\Users\nwalters\Documents\TestWebSampleCode4FromXML.ps1:4 char:80
+ Register-ClusteredScheduledTask -TaskName "TestXMLTask" -TaskType AnyNode -Xml $ ...
+ ~
+ CategoryInfo : InvalidData: (:) [Register-ClusteredScheduledTask], ParameterBindingArgumen
tTransformationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Register-ClusteredScheduledTask
考虑到它需要一个 XML 文档,我还尝试了这个:
cls
$xmlFilename="i:\Scripts\ImportScheduledTasks\CleaupMessageLogUTF8.xml"
$xmlContents = get-content $xmlFilename
$xmlDoc = [xml] (get-content $xmlFilename)
$test = $xmlDoc.OuterXml
#Write-Host $test
Register-ClusteredScheduledTask -TaskName "TestXMLTask" -TaskType AnyNode -Xml $xmlDoc
我打开文件,将 UTF16 更改为 UTF8 并重新保存,关闭与第一个示例不同的文件名。
错误:
Register-ClusteredScheduledTask : The task XML is malformed.
(1,2)::ERROR: incorrect document syntax
At C:\Users\nwalters\Documents\TestWebSampleCode4FromXML.ps1:7 char:1
+ Register-ClusteredScheduledTask -TaskName "TestXMLTask" -TaskType AnyNode -Xml $ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (PS_ClusteredScheduledTask:Root/Microsoft/...edScheduledTask)
[Register-ClusteredScheduledTask], CimException
+ FullyQualifiedErrorId : HRESULT 0x8004131a,Register-ClusteredScheduledTask
如果 XML 确实格式错误,那么我该如何加载它并获取 .OuterXml?
答案1
该-Xml
参数期望将 xml 输入作为字符串。
Get-Content
默认情况下,返回一个字符串数组(每行一个),这就是引发第一个错误的原因。
为了解决这个问题,请-Raw
在调用时使用参数Get-Content
让其返回单个字符串:
$xmlContents = Get-Content $xmlFilename -Raw
在 PowerShell 3.0 之前,您可以通过将字符串数组传递到来实现相同的目的Out-String
:
$xmlContents = Get-Content $xmlFilename | Out-String