Powershell脚本跳过了一个步骤

时间:2019-11-08 15:27:32

标签: powershell

这是在Windows 10上

这对我来说可能是一个简单的逻辑错误,对于PowerShell来说我还比较陌生...

我的主脚本检查用户是否已登录,如果是,则调用另一个用计时器显示表单的脚本(在第04行调用的脚本“ readytoinstall_logoff.ps1”)。当计时器到期时,它将发出注销命令,然后关闭窗体并将控制权返回给主脚本。一切都很好,除了下面第04行中的脚本关闭之后,它没有执行第05-06行,它跳到了第12行。执行睡眠。 (在以后有人说我将用“ while循环”代替“睡眠”之前,只是想弄清楚为什么它没有得到执行。)谢谢!

01 if((quser /server:'localhost')){
02    Add-Content -Path $sLogFile -Value (quser /server:'localhost')
03    Add-Content -Path $sLogFile -Value "$(Get-Date -Format G) - User logon detected, calling 'Ready to install_logoff'"
04    & .\ReadyToInstall_logoff.ps1 -sAppName $sAppname -vAppVersion $vAppVersion -sLogfile $sLogFile -Timeout $TimeOut
05    Add-Content -Path $sLogFile -Value "$(Get-Date -Format G) - Sleeping 30 seconds to allow time to logoff"
06    Sleep -s 30
07    }
08    else
09    {
10    Add-Content -Path $sLogFile -Value "No user logon detected, continuing"
11    }
12
13
14

2 个答案:

答案 0 :(得分:0)

应该工作正常。也许第二个脚本失败并导致父脚本停止。

尝试设置$ ErrorActionPreference =继续

答案 1 :(得分:0)

好吧,显然,我(愚蠢地)使用了两种不同的方法来关闭另一种形式,所以我使用了一种在两个位置都可以使用的方法,现在它可以正常工作了,很好!