当用户中断powershell脚本时,是否有办法捕获。
我需要退出PSSession。
我最后使用try进行测试但是当脚本中断时不执行finally Ctrl + c
try
{
$s = New-PSSession -ComputerName MYCOMPUTER -Credential (Get-Credential -Credential admin )
Invoke-Command -ScriptBlock { Get-EventLog -LogName Application } -Session $s
}
catch [Exception]
{
}
finally
{
echo "Ending the session"
Remove-PSSession $s
}
答案 0 :(得分:1)
据我所知,它不存在PowerShell结束时运行的脚本。但您可以查看System.Management.Automation.PsEngineEvent类,该类提供您可以使用Register-EngineEvent
CmdLet订阅的事件。
因此,运行PowerShell命令行并执行:
Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Action {[console]::Beep()}
然后关闭PowerShell命令行(退出或点击右上角),你会听到一些东西。如果PowerShell进程被终止(例如使用任务管理器),请小心不要触发该事件。