1

with というスクリプト ブロックにオブジェクトを渡すと、オブジェクトがシリアル化されることを読みましたstart-job。これは文字列などに対してはうまくいくようですが、オブジェクトを渡そうとしています。スクリプト ブロックを呼び出す前にxml.XmlElement、オブジェクトが であると確信していますが、ジョブでは次のエラーが発生します。XMLElement

Cannot process argument transformation on parameter 'node'. Cannot convert the "[xml.XmlElement]System.Xml.XmlElement"
value of type "System.String" to type "System.Xml.XmlElement".
    + CategoryInfo          : InvalidData: (:) [], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError
    + PSComputerName        : localhost

では、どうすればXmlElement背が伸びますか。何か案は?

価値があるのは、これが私のコードです:

$job = start-job -Name $node.LocalName -InitializationScript $DEFS -ScriptBlock {
    param (
        [xml.XmlElement]$node,
        [string]$folder,
        [string]$server,
        [string]$user,
        [string]$pass
    )
    sleep -s $node.startTime
    run-action $node $folder $server $user $pass
} -ArgumentList $node, $folder, $server, $user, $pass
4

1 に答える 1