Powershell脚本跳过一个步骤

Powershell脚本跳过一个步骤,powershell,Powershell,这是在Windows10上 这可能是我的一个简单的逻辑错误,我对PowerShell比较陌生 我的主脚本检查用户是否已登录,如果已登录,则调用另一个显示带有计时器的表单的脚本(在第04行调用脚本“readytoinstall_logoff.ps1”)。当计时器过期时,它发出注销命令,关闭窗体并将控制权返回主脚本。一切正常,除了在下面第04行中调用的脚本关闭后,它没有执行第05-06行,而是跳到第12行。我试图引入一个延迟,让帐户有时间注销,但它没有执行睡眠。(在别人说我以后会用“while循环”

这是在Windows10上

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

我的主脚本检查用户是否已登录,如果已登录,则调用另一个显示带有计时器的表单的脚本(在第04行调用脚本“readytoinstall_logoff.ps1”)。当计时器过期时,它发出注销命令,关闭窗体并将控制权返回主脚本。一切正常,除了在下面第04行中调用的脚本关闭后,它没有执行第05-06行,而是跳到第12行。我试图引入一个延迟,让帐户有时间注销,但它没有执行睡眠。(在别人说我以后会用“while循环”来代替“sleep”之前,我只是想弄清楚为什么它不会被执行。)谢谢


它应该很好用。可能第二个脚本失败并导致父脚本停止


尝试设置$ErrorActionPreference=continue

它应该可以正常工作。可能第二个脚本失败并导致父脚本停止


尝试设置$ErrorActionPreference=continue

好的,显然我(愚蠢地)使用了两种不同的方法来关闭另一个表单,所以我使用了一种在两个位置都有效的方法,现在它工作正常,这很好

好的,显然我(愚蠢地)使用了两种不同的方法来关闭另一个窗体,所以我使用了一种在两个位置都有效的方法,现在它工作正常,这很好

嗯,父脚本确实在继续,它似乎没有在调用另一个脚本的语句之后立即执行这两行代码。我在脚本中尝试了另一个有效的选项,因此我关闭两个函数之间的窗体的方法肯定有问题。我们需要尽快深入研究。谢谢嗯,父脚本确实在继续,它似乎没有在调用另一个脚本的语句之后立即执行这两行代码。我在脚本中尝试了另一个有效的选项,因此我关闭两个函数之间的窗体的方法肯定有问题。我们需要尽快深入研究。谢谢请详细说明您用于关闭表单的两种不同方法-这可能对其他人有用。实际问题是,在注销命令之后工作的部分有一个“form.close()”语句,而失败的步骤是在注销命令之前关闭表单。:-)请详细说明您用于关闭表单的两种不同方法-这可能对其他人有用。实际问题是,在注销命令之后工作的部分有一个“form.close()”语句,而失败的步骤是在注销命令之前关闭表单。:-)
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