【问题标题】:node-windows permission Denied - and not requesting rights after compiling?node-windows权限被拒绝-编译后不请求权限?
【发布时间】:2020-06-18 05:02:34
【问题描述】:

我正在尝试从我的电子应用程序中动态安装 Windows 服务。
为此,我正在使用节点模块“node-windows”。

看起来像这样:

service = new Service({
    name: 'Watcher',
    description: 'Watcher',
    script: 'Watcher.js',
    env: {
        name: "SettingsPath",
        value: storage.getDataPath()
    }
});

service.on('install',function(){
    service.start();
});

service.install();

这在我的开发机器上运行良好。
应用请求创建服务的权限并顺利安装。

我的问题
如果我将应用程序编译为 exe,则应用程序不会向我请求权限并打印错误

Permission Denied. Requires administrative privileges.

应用此时成功创建服务exe,不再做任何事情。

好的,所以我以管理员权限启动了该应用程序以测试此行为。
很好,应用程序没有显示任何错误,创建服务 exe并且 ahhhhhh 安装了服务NOT

问题
为什么app在编译时不再请求权限?
为什么编译应用时没有安装服务?

如果您需要任何其他信息,请给我写评论。感谢您的宝贵时间。

【问题讨论】:

  • 您解决了这个问题吗?我现在遇到了同样的瓶颈
  • node-windows 中 elevate.cmd 的路径对于电子应用程序不正确...您可以在此处阅读:github.com/coreybutler/node-windows/issues/245
  • 但是你会遇到更多问题......服务不能使用 asar 文件中的脚本,所以你必须禁用或排除这些文件......服务配置中的执行路径会是错误的所以你创建后必须编辑此文件...如果在您的软件的目标系统上没有安装 node.js,您需要其他可执行文件....可能是另一件事我不记得 jet....
  • 所以我包装没有asar :(。没有其他选择。

标签: node.js electron node-windows


【解决方案1】:

node-windows 中 elevate.cmd 的路径对于电子应用程序不正确。
i have documented the way of trouble here

在使用 node-windows 包时发现了更多问题:

  • 无法使用电子 asar 文件中的脚本(排除文件或禁用 asar)
  • 生成的服务配置的可执行路径错误(它是打包的应用程序可执行文件,但必须是 node.exe 或等效的可执行文件)
  • 只有在安装了 node.js 或者你提供了一个等价物的情况下,服务才会在目标系统上运行

【讨论】:

    猜你喜欢
    • 2019-10-05
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    相关资源
    最近更新 更多