微软为了拦截恶意程序利用 PowerShell 入侵系统,通过 Windows 更新强化脚本安全管控,会屏蔽、拦截一部分来源不明、存在攻击特征的 PowerShell 脚本,不是直接把 PowerShell 整个禁用,主要针对网上下载无签名脚本、远程拉取代码、编码隐藏恶意指令这类高危写法,很多勒索病毒、木马都靠 PowerShell 悄悄执行破坏代码,这次安全加固就是堵上这类攻击通道,普通用户日常手动敲单行命令基本不受影响,但是自动化脚本、网上下载的.ps1 文件大概率会触发拦截或者安全弹窗,下面整理拦截规则清单、新旧机制对比、IT 管理员合规处理步骤,同时区分清楚执行策略和应用控制两种防护方式。
一、被屏蔽拦截的 PowerShell 脚本类型清单
| 脚本类型 | 拦截原因 | 表现 |
|---|---|---|
| 互联网下载未签名 ps1 脚本 | 来源不可控,是恶意脚本高发区 | RemoteSigned 策略下直接阻止运行,提示被阻止 |
| 带 EncodedCommand 编码命令 | 黑客常用手段,隐藏恶意代码,规避检测 | 更新后限制这类编码参数直接执行 |
| Invoke-WebRequest 不带基础解析参数拉取网页脚本 | 存在 DOM 解析执行漏洞,对应 CVE-2025-54100 | 弹出安全确认弹窗,默认拒绝执行 |
| 无白名单的脚本块注入、点源加载脚本 | 容易被利用做代码注入 | 进入 ConstrainedLanguage 受限语言模式,高危 API 不可调用 |
| WDAC / 应用控制策略之外的第三方脚本 | 企业设备统一安全管控 | 直接拦截或者降权运行 |
二、两种核心防护机制区别
- PowerShell 执行策略(基础防护)
- Windows 应用控制 WDAC(强管控)
分为 Restricted、RemoteSigned、AllSigned、Unrestricted,属于基础门槛,优先阻止外网下载无签名脚本,它不是绝对安全锁,有办法绕过,属于纵深防御。家用 Windows 默认一般是 RemoteSigned,本地自己写的脚本可以跑,网上下载的没签名就拦。
企业设备常用,设置白名单,只有被信任签名、纳入策略的脚本才能完整运行;不在白名单的脚本进入受限语言模式,不能调用.NET 高危方法、不能加载外部模块,很多攻击动作直接失效。
三、普通用户和 IT 管理员处理脚本拦截实操步骤
第一步:先判断脚本来源,如果是网上随便下载、来路不明的脚本,直接放弃,不要强行放行。
第二步:确认脚本可信,本地自己写的脚本,右键文件属性,解除锁定,或者用 Unblock-File 解除网络标记。
第三步:自动化脚本需要长期稳定运行,推荐给脚本做代码签名,使用可信证书签名,避开 RemoteSigned 拦截。
第四步:写脚本里的 Invoke-WebRequest 时,强制加上 -UseBasicParsing 参数,规避网页解析漏洞弹窗。
第五步:企业 IT 侧,使用 WDAC / 应用控制策略,建立脚本白名单,而不是全局放开执行策略。
第六步:排查拦截日志,查看 Windows 事件查看器 PowerShell 日志,定位是执行策略还是 WDAC 拦截。
四、小结
微软屏蔽部分 PowerShell 脚本,核心目标是封堵当下流行的恶意攻击链,黑客非常喜欢借助 PowerShell 静默下载病毒、修改系统、加密文件,加固之后能大幅降低中招概率。这个改动对普通玩家影响很小,自己手动敲命令、简单本地脚本大多正常;麻烦主要集中在运维、自动化从业者,之前网上流传的一键脚本、批量运维脚本很多会触发拦截,需要改成签名脚本、规范写法,或者在企业侧配置白名单策略,不能简单粗暴关闭安全策略。
【常见问题】
问题 1:一切为了安全,微软屏蔽部分 PowerShell 脚本,是不是 PowerShell 不能用了?
回答 1:一切为了安全,微软屏蔽部分 PowerShell 脚本不等于禁用 PowerShell,手动输入命令、本地可信脚本依旧可以正常使用,只是拦截高危、无签名、远程拉取类风险脚本。
问题 2:一切为了安全,微软屏蔽部分 PowerShell 脚本,家用电脑默认会拦截哪些脚本?
回答 2:一切为了安全,家用 Windows 默认 RemoteSigned 策略,主要拦截从互联网下载、没有数字签名的 ps1 脚本,本地自己新建编写的脚本不会被拦截。
问题 3:一切为了安全,微软屏蔽部分 PowerShell 脚本,脚本被拦截之后怎么安全放行?
回答 3:一切为了安全,确认脚本来源可信,先解除文件的网络锁定标记,或者给脚本做数字签名;不建议直接把执行策略改成 Unrestricted,会降低系统安全防护。
问题 4:一切为了安全,微软屏蔽部分 PowerShell 脚本,Invoke-WebRequest 报错弹窗怎么解决?
回答 4:一切为了安全,微软针对 Invoke-WebRequest 漏洞做加固,脚本里调用这条命令带上 -UseBasicParsing 参数,关闭 DOM 解析,就可以绕过安全弹窗正常执行。
问题 5:一切为了安全,微软屏蔽部分 PowerShell 脚本,企业环境怎么批量管理脚本权限?
回答 5:一切为了安全,企业环境优先使用 WDAC 应用控制,建立可信脚本白名单,采用受限语言模式管控未知脚本,而不是全局放开 PowerShell 执行策略。
【参考资料】
[2026-11-13](微软强化 PowerShell 安全,屏蔽高危脚本防范恶意攻击)IT 之家
[2026-11-02](Windows 应用控制:PowerShell 脚本强制与受限语言模式详解)微软技术文档
[2025-12-09](PowerShell 5.1 安全更新:阻止 Invoke-WebRequest 网页脚本执行,CVE-2025-54100)微软支持中心
[2026-09-01](PowerShell 执行策略介绍,属于纵深防御不是安全边界)Microsoft Learn
[2026-10-20](运维避坑:新版 Windows PowerShell 脚本拦截变化)51CTO
【免责声明】
本文微软 PowerShell 脚本安全管控相关内容基于微软官方文档、公开安全更新整理,不同 Windows 版本、组策略、WDAC 策略会造成拦截表现不一样;随意修改执行策略、放行未知脚本存在中毒、被入侵风险。本文仅为技术科普,不指导绕过安全防护,一切安全配置请结合自身环境评估。
