加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

检查电子应用是否在Windows上以管理员权限启动

发布时间:2020-12-14 02:08:12 所属栏目:Windows 来源:网络整理
导读:有没有办法检查是否使用管理员权限启动了电子应用程序? 我只发现了使用admin权限执行命令的electron-sudo lib. 但我有多个命令要执行,我不想每次都提示用户. 那么如何使用电子检查应用是否以管理员权限启动? 最好的办法就是在软件ex:.isAdminPrivilegesUs
有没有办法检查是否使用管理员权限启动了电子应用程序?

我只发现了使用admin权限执行命令的electron-sudo lib.

但我有多个命令要执行,我不想每次都提示用户.

那么如何使用电子检查应用是否以管理员权限启动?

最好的办法就是在软件ex:.isAdminPrivilegesUsed(可以是在Windows上执行的脚本)中执行一个返回true或false的命令,如果为false:

我将提示用户必须使用管理员权限重新启动软件并关闭它

解决方法

我从Node检查了如何做到这一点,并找到了这个答案: How to know if node-webkit app is running with Administrator/elevated privilege?.

我检查了答案,下载了node-windows并试了一下.但是,该解决方案启动了UAC对话框,并始终以“用户具有管理权限”作为响应.

我挖掘了处理isAdminUser命令的node-windows代码,发现它试图运行NET SESSION,如果没有权限,则尝试将其运行升级,从而导致UAC对话框.

我拿出了提升部分并最终得到了这个片段:

var exec = require('child_process').exec; 
exec('NET SESSION',function(err,so,se) {
      console.log(se.length === 0 ? "admin" : "not admin");
    });

我通过正常运行应用程序并使用“以管理员身份运行”来测试它.上面的代码在不以管理员身份运行时正确显示“not admin”,以管理员身份运行时正确显示“admin”.

这应该适用于您在问题中引用的.isAdminPrivilegesUsed方法的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读