company-issued Windows monitoring¶
完全有可能,而且在 company-issued Windows 上很常见。企业常见的是 EDR(Endpoint Detection and Response,终端检测响应)、DLP(Data Loss Prevention,数据防泄漏)、MDM/设备管理、网络代理、浏览器管理扩展,而不一定是 ActivityWatch 这种“生产力追踪器”。
你可以做“可见性审计”,但不要尝试卸载、绕过或禁用这些 agent;公司设备通常受 IT policy 管理。
先看最容易暴露的信息。在 PowerShell 里:
重点看不认识的常驻进程。然后看服务:
再看启动项:
以及计划任务:
企业监控更常隐藏在 Windows Service、driver、system tray agent 或 scheduled task 里,而不只是普通 GUI 程序。
第二层是判断机器是否被企业管理。可以检查:
关注是否 Azure AD / Entra joined、Workplace joined,以及 MDM 相关状态。也可以打开:
如果看到组织账户、MDM enrollment 或“Managed by your organization”,说明管理员通常具有较强的设备配置能力。
然后看浏览器。Chrome/Edge 地址栏分别打开:
chrome://management
chrome://policy
chrome://extensions
edge://management
edge://policy
edge://extensions
如果出现:
或者某些 extension 显示:
那么公司可以通过扩展获得比普通 Windows window-title tracker 更细粒度的浏览器信息,例如 URL/domain、下载行为等,具体取决于扩展权限。
另一个关键位置是网络代理:
以及:
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' |
Select-Object ProxyEnable,ProxyServer,AutoConfigURL
如果公司使用 Netskope、Zscaler、Cisco Umbrella、GlobalProtect 一类企业网络/安全方案,流量可能被本地 agent 或企业 proxy 处理。
还可以检查系统信任的证书:
如果存在企业自己的 Root CA(根证书),它有可能用于 TLS inspection。这里不能仅凭“有公司证书”就断定公司正在解密 HTTPS,因为企业证书还有很多正常用途,例如内部网站、VPN、Wi-Fi、device authentication。
对于 ActivityWatch 这种“前台窗口监控”,你尤其应该检查正在运行的 agent 是否持续调用/拥有用户 session 权限。最简单的方法是先把所有第三方常驻进程导出来:
Get-Process |
Where-Object {$_.Path -and $_.Path -notlike "C:\Windows\*"} |
Select-Object ProcessName,Id,Path,Company,Product |
Sort-Object ProcessName
不过这里有一个限制:从“它正在运行”不能直接判断“它正在调用 GetForegroundWindow()”。普通 Task Manager/PowerShell 不会告诉你某进程调用了哪些 Win32 API。
更深入但仍属于正常审计的工具是 Microsoft Sysinternals:
它们分别适合看:
Process Explorer → 进程、签名、父子进程、DLL
Autoruns → 所有自动启动持久化点
TCPView → 哪些进程正在建立网络连接
Process Monitor → 文件、注册表、process/thread 活动
尤其 Autoruns 很有价值,因为企业 agent 通常必须具有某种 persistence:
网络侧可以先粗看:
Get-NetTCPConnection -State Established |
Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,OwningProcess
然后关联 PID:
但“一个 agent 有外连”仍不能证明它上传了窗口标题。EDR 本来就会和云端通信。
比较典型的企业 agent 名字包括 Microsoft Defender for Endpoint、CrowdStrike Falcon、SentinelOne、Netskope、Zscaler、Tanium、Absolute、Trellix/McAfee、Symantec/Broadcom、Forcepoint 等。发现其中之一,只能说明存在相应安全/管理软件,不能自动推导为“公司实时查看你的屏幕”。
从第一性原理看,你真正要区分的是五种观测能力:
| 能力 | 可能的企业实现 |
|---|---|
| 知道运行了哪些程序 | EDR / process telemetry |
| 知道浏览了哪些网站 | proxy / DNS / browser extension |
| 知道当前前台窗口 | endpoint agent |
| 知道文件复制/上传行为 | DLP / EDR |
| 看到实际屏幕内容 | remote support / screenshot agent |
其中前四种在企业设备上相当现实。第五种即“持续录屏/截图”成本、隐私和合规负担更高,因此不能简单假定存在,但技术上当然可以实现。
还有一个很重要的边界:如果公司拥有本机 Administrator/SYSTEM 权限以及 MDM/EDR 控制权,你无法通过普通用户态检查“证明没有监控”。一个 SYSTEM service、kernel driver,甚至由 EDR 动态下发的采集逻辑,都可能不容易从简单的进程列表判断。
所以更准确的安全模型应该是:
company-issued computer
≈ organization-controlled endpoint
不要假设:
“没看到 monitoring.exe”
→ “机器没有 telemetry”
而应该默认公司至少有能力看到设备安全相关 telemetry,并根据企业政策决定实际采集范围。
如果你愿意,我也可以给你一套“Windows 企业电脑监控审计 checklist”,只用系统自带 PowerShell,大约 10 条命令,就能把 services、EDR/MDM、drivers、startup、scheduled tasks、browser policy、proxy、certificates、network connections 全部扫一遍,并告诉你每项结果该怎么看。