You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell脚本异常:关闭Edge后按顺序循环启动指定用户邮箱页问题

脚本修正方案

原脚本的问题在于:外层while循环会持续遍历用户集合,当Edge浏览器未关闭时,脚本会跳过当前用户继续遍历后续项;当Edge关闭时,恰好遍历到集合中的某个用户就会启动,导致看起来像是随机选取用户。

要实现关闭上一个用户的浏览器后再启动下一个,循环往复的需求,需要调整逻辑为:启动当前用户的Edge后,等待所有Edge进程退出,再处理下一个用户。

修正后的脚本:

while ($true) {
    $collection = "aap","noot","mies"
    foreach ($item in $collection) {
        # 启动Edge并打开目标链接
        Start-Process -FilePath msedge "https://outlook.office.com/mail/$item/junkemail"
        Write-Host "已启动用户 $item 的Edge浏览器,请关闭后继续..."
        
        # 等待当前会话中的所有Edge进程退出
        do {
            Start-Sleep -Seconds 1
            $currentSessionEdgeProcs = Get-Process msedge -ErrorAction SilentlyContinue | 
                Where-Object {$_.SessionId -eq (Get-Process -PID $PID).SessionId}
        } while ($currentSessionEdgeProcs.Count -gt 0)
    }
    Write-Host "一轮用户处理完成,即将开始下一轮循环`n"
}

关键调整说明:

  • 移除原脚本中仅在无Edge进程时才启动的判断,改为按顺序主动启动每个用户的Edge
  • 添加do-while循环,持续检查当前会话中的Edge进程,直到所有Edge进程关闭后才进入下一个用户的处理
  • 加入Start-Sleep -Seconds 1降低进程查询频率,减少系统资源占用

内容的提问来源于stack exchange,提问作者Jeroen Ruijter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:45:20