这是我的情况:

我的服务器具有2种可能的配置:不需要特殊处理的2 TB HDD或需要UEFI BIOS和GPT分区来引导OS的3 TB HDD。

我正在尝试创建一个安装USB密钥,该密钥可以检测BIOS是“旧版”还是“UEFI”并相应地执行部署脚本。

我一直在努力寻找一个可以做出区分但无济于事的WMI。

我最接近解决方案的是这篇文章:
http://social.technet.microsoft.com/Forums/en-US/winserverManagement/thread/6cbb488d-3062-4aad-b712-7a9e4d045b13

detectefi.exe在检测BIOS类型方面效果很好,但是我无法输出其结果,所以我不知道如何使用它。

我有两个问题:

  • 是否可以使用WMI来区分我的2个设置。
  • (如果问题1的答案为否)是否可以将结果从C++编译的.exe文件输出到.txt或任何其他形式,并利用结果(我一点也不懂C++技能)
  • 最佳答案

    如果有人有兴趣,我如何解决这个问题。我刚刚创建了一个VBS链接到.exe

        Set objShell = CreateObject("WScript.Shell")
    Set objWshScriptExec = objShell.Exec("detectefi.exe")
    Set objStdOut = objWshScriptExec.StdOut
    
    dim isLegacy
    dim isUefi
    
    isLegacy = false
    isUefi = false
    
    While Not objStdOut.AtEndOfStream
       strLine = objStdOut.ReadLine
    
       if strLine = "Legacy" then
          isLegacy = true
       end if
    
       if strLine = "UEFI" then
          isUefi = true
       end if
    Wend
    
    
    if isLegacy then
       wscript.echo "this is legacy"
    
        set objShell = Wscript.CreateObject("WScript.Shell")
        objShell.Run "2TBdeploy.cmd",1,True
        set objShell = Nothing
    
    end if
    
    
    if isUefi then
       wscript.echo "this is UEFI"
    
        set objShell = Wscript.CreateObject("WScript.Shell")
        objShell.Run "3TBdeploy.cmd",1,True
        set objShell = Nothing
    
    end if
    

    关于c++ - 使用vbs从WinPE中检测BIOS:Legacy或UEFI//将结果从.exe输出到.txt,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10884495/

    10-13 01:11