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

从网页调用本地PS1转EXE文件失败问题求助

问题背景

我有一个简单的PowerShell脚本:

Write-Output "Hello"

通过PS2EXE转为EXE文件后保存到C盘根目录,尝试通过HTTPS网页(https://mysite/page.html)调用时,以下几种方式均失败:

  1. 按钮/输入框调用:
<button onclick="window.open('file:///C:/myprogram.exe')">
<input type="button" onclick="window.open('file:///C:/myprogram.exe')" />
  1. ActiveX脚本调用:
<script type="text/javascript">
function RunExeFile(){
        WshShell = new ActiveXObject("WScript.Shell");
        WshShell.Run("C:\myprogram.exe", 1, false);
    }
</script>
<a href="javascript:void(0);" onclick="RunExeFile()">run exe</a>
  1. Webrun工具调用:
<a href="webrun:C:\myprogram.exe">Run exe with Webrun</a>

报错提示:It seems that C:\myprogram.exe is not a valid executable. Please check your syntax.

注:本地直接运行该EXE正常;将EXE移至C:\Windows目录后,网页可正常调用。系统为Win11 64位,寻求解决办法。


原因分析

这是Windows安全权限与浏览器沙箱限制导致的:

  • 现代浏览器(尤其是HTTPS环境下)会严格限制网页访问非系统信任目录的本地文件,防止恶意网页调用本地程序。
  • C:\Windows属于系统默认信任目录,可绕过部分权限校验,因此能正常调用。

解决方案

方案1:修改EXE文件权限(推荐)

  1. 右键C盘根目录的EXE文件 → 属性 → 安全选项卡
  2. 点击「编辑」,添加当前登录用户(或Everyone)的读取和执行权限
  3. 若EXE是从外部复制而来,右键选择「解除锁定」(文件属性→常规选项卡底部),移除系统的安全标记

方案2:注册自定义URL协议

通过注册表注册专属协议,让浏览器允许调用指定本地程序:

  1. 新建记事本,粘贴以下内容(替换C:\myprogram.exe为你的实际路径):
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\mypsapp]
@="URL:My PowerShell App Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\mypsapp\shell]

[HKEY_CLASSES_ROOT\mypsapp\shell\open]

[HKEY_CLASSES_ROOT\mypsapp\shell\open\command]
@="\"C:\\myprogram.exe\""
  1. 保存为register_protocol.reg,双击导入注册表
  2. 网页中通过协议调用:
<a href="mypsapp://">Run My Program</a>

注:首次调用会弹出系统安全提示,用户确认后即可运行。

方案3:调整浏览器本地访问权限(仅测试用)

  • 针对Chrome/Edge,右键浏览器快捷方式 → 属性 → 目标栏末尾添加 --allow-file-access-from-files(注意前面有空格)
  • 此方法会降低浏览器安全性,仅适合本地测试,禁止用于生产环境。

方案4:使用本地Web服务器

将网页部署到本地Web服务器(如IIS、XAMPP),通过http://localhost访问网页,此时浏览器对本地文件的限制会宽松,原有的file:///或ActiveX调用方式可能生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:25:01