【问题标题】:How to know if node-webkit app is running with Administrator/elevated privilege?如何知道 node-webkit 应用程序是否以管理员/提升权限运行?
【发布时间】:2020-07-03 23:53:09
【问题描述】:

如何确定 node-webkit 是否在 Windows 上以管理员权限运行?

【问题讨论】:

    标签: javascript node.js node-webkit


    【解决方案1】:

    不要将 npm 包用于任何小任务 - 这是非常糟糕的做法。

        var isElevated;
    
        try {
            child_process.execFileSync( "net", ["session"], { "stdio": "ignore" } );
    
            isElevated = true;
        }
        catch ( e ) {
            isElevated = false;
        }
    

    【讨论】:

      【解决方案2】:

      在windows上,你可以使用npm包is-admin,检查节点进程是否被提升。

      const isAdmin = require('is-admin');
      
      isAdmin().then(elevated => {
          if (elevated) {
              console.log('Elevated');
          } else {
              console.log('Not elevated');
          }
      });
      

      还有一个名为 is-elevated 的跨平台实现,它捆绑了 Unix 和 Windows 的提升检查

      【讨论】:

        【解决方案3】:

        使用node-windows模块,可以调用如下函数判断当前用户是否有管理员权限:

        var wincmd = require('node-windows');
        
        wincmd.isAdminUser(function(isAdmin){
          if (isAdmin) {
            console.log('The user has administrative privileges.');
          } else {
            console.log('NOT AN ADMIN');
          }
        });
        

        【讨论】:

        • 这似乎只检查用户是否在管理员组中,但不会告诉你进程是否被提升
        猜你喜欢
        • 2011-12-20
        • 2011-05-12
        • 1970-01-01
        • 2010-11-27
        • 2012-12-05
        • 2012-06-03
        • 2022-01-12
        • 2013-06-14
        • 2013-03-04
        相关资源
        最近更新 更多