首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安全地获得窗口机器的UUID?

安全地获得窗口机器的UUID?
EN

Stack Overflow用户
提问于 2022-02-27 14:10:17
回答 2查看 2.1K关注 0票数 1

我有一个卖给用户的adobe第三方工具,我使用windows上的命令行为用户获取UUID:

代码语言:javascript
运行
复制
wmic path win32_computersystemproduct get uuid

不幸的是,它并不适用于少数用户,这些用户收到了文件请求无法找到的错误。

有没有更好的方法来找到自己机器的UUID?如果没有,是否有一种方法可以修改此代码以避免在找不到文件时抛出错误?在我的JavaScript端使用try-catch似乎没有捕捉到错误。

EN

回答 2

Stack Overflow用户

发布于 2022-03-02 04:51:48

您可以使用我的wmiClass.bat程序版本1.3;只需从前面的链接复制.BAT文件即可。之后,将它与标准类名一起使用:

代码语言:javascript
运行
复制
wmiClass.bat Win32_ComputerSystemProduct uuid

..。或者通过wmic.exe别名:

代码语言:javascript
运行
复制
wmiClass.bat CSProduct uuid

如果WMI类或wmic.exe别名不存在,并以错误消息和%错误级别%等于1结尾,则此程序将捕获错误。

票数 0
EN

Stack Overflow用户

发布于 2022-03-03 07:16:31

谢谢大家!我没想到这么快就能得到这么多帮助。我目前的解决办法(虽然缺乏)是这样的:

代码语言:javascript
运行
复制
 if (isWin) {
    var systemRoot = system.callSystem("cmd /c echo %SystemRoot%") || "";
    var rootDrive = systemRoot.substring(0, 2);
    //var isRootDriveValid = rootDrive.length == 2 && rootDrive.charAt(1) == ":";
    var wmicPath = rootDrive + "\\Windows\\System32\\wbem\\WMIC.exe";
    var wmic = new File(wmicPath);

    if (!wmic.exists) {
        // wmic is not installed or not found
        // Do something else instead of system.callSystem()
    } else {
        // wmic is installed
        // system.callSystem("wmic path win32_computersystemproduct get uuid");
    }
    
}

我对多个用户进行了测试,并为他们解决了这个问题。我可以用这种方法验证他们的机器上缺少WMIC.exe。

然而,值得注意的是,当涉及到命令行时,我大麦知道任何事情,所以请阅读这些评论,因为它们提供了很多深入的解决方案,我将继续努力学习。

正如莫菲在评论中提到的,callSystem()不喜欢我使用%SystemRoot%,所以我首先使用echo (有更好的方法吗?)这似乎是可行的,但如果有人想扩大我的知识,请做。

太多的爱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71285423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档