【问题标题】:Failed to start native messaging host on Windows, "COMSPEC is not set"无法在 Windows 上启动本机消息传递主机,“未设置 COMSPEC”
【发布时间】:2017-07-22 00:26:13
【问题描述】:

我有一个 chrome 扩展程序,它与本机消息传递主机通信以获取一些数据。

问题是,当我通过快捷方式或任务栏中的固定快捷方式启动 Chrome 浏览器时,扩展程序无法连接到主机。我总是得到错误:

无法启动本机消息传递主机。

但是,如果我通过命令提示符启动chrome.exe,一切正常。

我尝试过的事情没有成功:

  • 任务栏快捷方式没有额外的标志。目标字段具有 以下值:"C:\Program Files(x86)\Google\Chrome\Application\chrome.exe"
  • 我试过HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Google\Chrome\NativeMessagingHosts\com.company.extension下的注册表
  • 我试过HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.company.extension下的注册表
  • 我尝试使用下面的注册表项 HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.company.extension
  • 尝试从文件资源管理器中以管理员身份启动 chrome.exe

更新:

我在快捷方式中添加了标志 --enable-logging --v=1 以启用日志记录,当我启动它时,我在控制台中得到以下输出:

[11036:4160:0302/113902.866:ERROR:native_process_launcher_win.cc(140)] COMSPEC is not set
[11036:11856:0302/113902.882:ERROR:native_process_launcher_win.cc(140)] COMSPEC is not set

更新

通过 Process Monitor 调查 chrome.exe 进程后,我发现当它通过 explorer 生成时,没有可用的 COMSPEC 环境变量。

还有什么我可以尝试的或者我在这里缺少的东西吗?

【问题讨论】:

  • 这个错误意味着Chrome至少是tried to launch主机所以你可能会在procmon中看到与Process Create相关的内容。
  • 还应该enable and examine Chrome logs。可能的想法:快捷方式改变的是工作目录。
  • @Xan 是的,我通过添加日志标志在控制台中遇到错误。我已经用错误更新了问题。
  • 查看crbug.com/387233other bugs 了解COMSPEC
  • 查看变量是否在rundll32 sysdm.cpl,EditEnvironmentVariables的系统变量中设置(从管理员命令提示符运行)。它不是,设置它并注销或重新启动以测试。如果这有帮助,我会把它变成一个答案。

标签: google-chrome google-chrome-extension chrome-native-messaging


【解决方案1】:

如日志中所述,Chrome 偶然启动了一个外部进程,因为 COMSPECenvironment variable pointing normally to cmd,未设置:

[11036:4160:0302/113902.866:ERROR:native_process_launcher_win.cc(140)] COMSPEC is not set

cmd 本身启动 Chrome 的行为是不同的,因为它为自己设置了变量(以及衍生的进程)。

这可以通过使用Process Explorer 检查 Chrome 进程来确认。

可以以管理员身份运行rundll32 sysdm.cpl,EditEnvironmentVariables(例如从管理员命令行)打开环境变量设置。
或者,可以从“控制面板”>“系统和安全”>“系统”>“高级系统设置”>“高级”>“环境变量...”导航到该对话框。

ComSpec通常在系统变量中设置为

C:\WINDOWS\system32\cmd.exe

根据系统安装的需要进行调整。要应用此设置,您需要注销并重新登录,或者最好重新启动系统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多