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

如何用PowerShell绕过网络位置运行EXE的安全警告(无需可信服务器)

解决网络共享安装程序的PowerShell安全警告问题

我之前处理过类似的场景,你提到的Unblock-File无效是正常的——它只能修改本地文件的Zone.Identifier替代数据流(ADS),而网络共享上的文件要么你没有权限修改其ADS,要么SMB这类协议本身不支持该特性,所以没法通过它绕过网络区域的安全警告。

下面给你两个不需要将网络位置添加为可信服务器的解决方案:

方案1:临时设置环境变量绕过区域检查

这个方法会临时让Windows忽略文件的区域标识,仅在当前PowerShell会话中生效,不会修改系统全局设置:

# 临时启用区域检查绕过(仅当前会话有效)
$env:SEE_MASK_NOZONECHECKS = 1

# 执行网络共享中的安装程序
Start-Process "\\192.168.5.7\MSChart.exe" -ArgumentList "/q" -Wait

# 可选:清理环境变量,避免后续操作受影响
Remove-Item Env:SEE_MASK_NOZONECHECKS

原理是SEE_MASK_NOZONECHECKS这个环境变量会告诉Windows Shell执行文件时跳过区域安全验证,完美适配你不想添加可信位置的需求。

方案2:复制到本地临时目录后执行

如果对环境变量的方法有所顾虑,可以把安装程序复制到本地临时目录,再用Unblock-File处理后执行:

# 定义本地临时文件路径
$localInstaller = Join-Path $env:TEMP "MSChart.exe"

# 从网络共享复制文件到本地
Copy-Item "\\192.168.5.7\MSChart.exe" -Destination $localInstaller -Force

# 解除本地文件的安全阻止
Unblock-File -Path $localInstaller

# 执行本地安装程序
Start-Process $localInstaller -ArgumentList "/q" -Wait

# 可选:清理临时文件
Remove-Item $localInstaller -Force

这个方法更稳妥,因为本地文件的Zone.Identifier可以被正常修改,执行时不会触发网络区域的安全警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:54:50