这是在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
答案 0 :(得分:0)
应该工作正常。也许第二个脚本失败并导致父脚本停止。
尝试设置$ ErrorActionPreference =继续
答案 1 :(得分:0)
好吧,显然,我(愚蠢地)使用了两种不同的方法来关闭另一种形式,所以我使用了一种在两个位置都可以使用的方法,现在它可以正常工作了,很好!