SharePoint システムへのさまざまなインポート タスクに役立つカスタムコマンドレットをいくつか開発しました。現在、これらのコマンドレットはすべて、1 つの PowerShell スクリプトでシリアルに実行されています。これを変更して、各コマンドレットが個別のタスク (ジョブ) で実行されるようにします。
メイン スクリプトはStart-Job
、コマンドレットの呼び出しを含む別のスクリプトに関連する新しいジョブを開始します。スクリプトが開始され、コマンドレットが実行されます。実行されるコマンドレットのコードもデバッグしました。ここまでは順調。
しかし、約 15 ~ 20 秒後に、次のエラー メッセージが表示されてジョブが終了します。
There is an error processing data from the background process. Error reported:
Cannot process an element with node type "Text". Only Element and EndElement
node types are supported..
+ CategoryInfo : OperationStopped: (localhost:String) [], PSRemotingTransportException
+ FullyQualifiedErrorId : JobFailure
+ PSComputerName : localhost
このようなエラーを処理する方法に関する情報が見つかりません。ここで何が問題なのかわかりません。
ジョブで処理できるように、カスタム コマンドレットにさらに機能を追加する必要がありますか?
ここにスクリプトがあります。
主要:
[object]$credentials = Get-Credential -UserName "domain\user" -Message "Log in"
$job = start-job -FilePath "C:\ImportItems.ps1" -Name ImportItems -ArgumentList $credentials
$job | Wait-Job
インポート項目:
[CmdletBinding()]
Param(
[object]$credentials
)
Import-Module C:\Migration\MigrationShell.dll
Import-Items -Credential $credentials