我想在非集群服务器上执行我的任务,并将它们作为集群任务导入到已构建和测试的新集群上。
这是我尝试过的:
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 Doc,我也试过这个:
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?
该
-Xml
参数需要将 xml 输入作为字符串。Get-Content
,默认情况下,返回一个字符串数组(每行一个),这就是引发第一个错误的原因。要解决此问题,请
-Raw
在调用时使用该参数Get-Content
以使其返回单个字符串:在 PowerShell 3.0 之前,您可以通过将字符串数组传递到
Out-String
: