背景(与问题无关)-我遇到一个问题,即 MS Teams 经常崩溃。随着 Teams 的变化,我对其进行了几次更改,目前的解决方案是使用 cron 作业(通过 WSL)在它未运行时启动它:
# every 10 minutes, check if any "teams" process is alive, and if not, start "new Teams"
*/10 * * * * [ -z "$(cmd.exe /C tasklist | grep teams)" ] && cmd.exe /C ms-teams.exe
我当前解决方案的问题是,cmd.exe /C tasklist | grep teams
即使团队的 UI 没有运行也可能产生输出,因为团队还在后台运行大约 10 个东西。
有没有更好的方法可以可靠地检测“新 Teams”的 UI 是否正在运行?当然,除了查看屏幕之外。最好解决方案不要依赖于固定路径中的单个可执行文件,因为随着 Teams exe 的频繁移动,该解决方案很快就会过时。
使用 PowerShell 实现此目的:
在哪里:
*Teams*
指定包含以下项的所有进程teams
?
是 的简写Where-Object
,MainWindowTitle
是我们希望填充的属性,在本例中是 UI 中窗口的标题