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

如何用PowerShell查询MS Teams是否正在进行屏幕共享?

用PowerShell检测Microsoft Teams屏幕共享状态

以下是几种可行的检测方法,你可以根据实际场景选择:

方法1:通过窗口标题判断

屏幕共享时,Teams主窗口标题会包含对应语言的共享标识(中文为“正在共享”,英文为“Sharing”),可以通过PowerShell过滤窗口标题来判断:

$teamsProcess = Get-Process Teams -ErrorAction SilentlyContinue
if ($teamsProcess) {
    $isSharing = $teamsProcess.MainWindowTitle -match "正在共享|Sharing"
    if ($isSharing) {
        Write-Host "Teams 当前正在共享屏幕"
    } else {
        Write-Host "Teams 当前未在共享屏幕"
    }
} else {
    Write-Host "Teams 未运行"
}

注意:需要根据系统使用的Teams语言调整匹配关键词,确保对应上标题里的共享标识。

方法2:基于UI自动化检测

借助Windows自动化API查找Teams界面内的共享状态控件,这个方法比窗口标题更可靠,但控件结构可能随Teams版本更新变化:

Add-Type -AssemblyName UIAutomationClient
$teamsWindow = [System.Windows.Automation.AutomationElement]::FromHandle((Get-Process Teams -ErrorAction SilentlyContinue).MainWindowHandle)
if ($teamsWindow) {
    # 匹配包含共享标识的控件,根据语言调整关键词
    $condition = [System.Windows.Automation.PropertyCondition]::new(
        [System.Windows.Automation.AutomationElement]::NameProperty, 
        "*正在共享*", 
        [System.Windows.Automation.PropertyConditionFlags]::IgnoreCase
    )
    $sharingElement = $teamsWindow.FindFirst([System.Windows.Automation.TreeScope]::Descendants, $condition)
    if ($sharingElement) {
        Write-Host "Teams 当前正在共享屏幕"
    } else {
        Write-Host "Teams 当前未在共享屏幕"
    }
} else {
    Write-Host "Teams 未运行"
}

方法3:检查进程加载的共享模块

屏幕共享时Teams会加载专属的共享模块,可通过检测进程模块列表判断,但存在共享结束后模块未立即卸载的误判可能:

$teamsProcess = Get-Process Teams -ErrorAction SilentlyContinue
if ($teamsProcess) {
    $hasSharingModule = $teamsProcess.Modules | Where-Object {$_.ModuleName -eq "TeamsSharing.dll"}
    if ($hasSharingModule) {
        Write-Host "Teams 当前正在共享屏幕"
    } else {
        Write-Host "Teams 当前未在共享屏幕"
    }
} else {
    Write-Host "Teams 未运行"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:02:40