我有一个PowerShell工作流程,它会生成错误:
“操作未在指定的超时时间内完成 00:00:30。分配给此操作的时间可能是一部分 更长的超时“
工作流脚本是:
Workflow Test-Me (){
Param
(
$Path = "c:\temp"
)
$Files = InlineScript{
Get-ChildItem -Path $using:Path -File -Recurse -Force | Where-Object {$_.LastWriteTime -lt ((get-date).AddDays(-$using:Days))} | Select FullName
}
Foreach -parallel ($File in $Files){
sequence{
InlineScript{
Remove-Item -Path $using:File.FullName -force -ErrorAction:SilentlyContinue
} -PSActionRunningTimeoutSec 300
}
}
}
生成错误的行是处理InlineScript
操作的remove-item
。它在到达操作之前运行并工作30秒,然后退出上面引用的错误。我已将-PSActionRunningTimeoutSec
参数添加到InlineScript
,但这不会影响错误。我还设置了工作流通用参数,如下所示:
-PSRunningTimeoutSec = 300
-PSElapsedTimeoutSec = 0
我使用以下过程调用工作流cmdlet:
PS C:\> . "c:\path\to\Test-Me.ps1"
PS C:\> Test-Me -PSRunningTimeoutSec 300 -PSElapsedTimeoutSec 0
显然有一个我无法找到/不知道的超时,但是PowerShell并不具体。我错过了什么超时,如何更改?
参考文献:
about_WorkflowCommonParameters
PowerShell Workflows: Using Parameters