gpt4 book ai didi

powershell - 包含自定义 cmdlet 的 Start-Job 因奇怪错误而终止

转载 作者:行者123 更新时间:2023-12-02 23:20:49 25 4
gpt4 key购买 nike

我开发了一些自定义cmdlets用于向 SharePoint 系统执行不同的导入任务。目前,所有这些 cmdlet 都在单个 PowerShell 脚本中以串行方式运行。我想更改此设置,以便每个 cmdlet 在单独的任务(作业)中执行。

主脚本通过 Start-Job 启动一项新作业,该作业与包含对 cmdlet 的调用的单独脚本相关。该脚本启动并执行 cmdlet。我还调试了执行的 cmdlet 的代码。到目前为止一切顺利。

但是大约 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

我找不到任何有关如何处理此类错误的信息。我只是不知道这里出了什么问题。

我是否必须向自定义 cmdlet 添加更多功能,以便可以在作业中处理它们?

这是脚本。

主要:

[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

最佳答案

我在 uservoice 上找到了一个解决方法,为我解决了这个问题

https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/14915283-job-cmdlets-fail-with-utf-8-codepage

if (
[Console]::InputEncoding -is [Text.UTF8Encoding] -and
[Console]::InputEncoding.GetPreamble().Length -ne 0
) {
[Console]::InputEncoding = New-Object Text.UTF8Encoding $false
}

关于powershell - 包含自定义 cmdlet 的 Start-Job 因奇怪错误而终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33936510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com