Возвращаемое значение из vbscript в вызывающий php код - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь получить серийный номер BIOS в PHP, который будет сохранен как exe-файл через Exeoutput.Поскольку я не смог получить серийный номер в exeoutput, но получал его в браузере, я пришел к выводу, что php-файлы работают в виртуальном каталоге, поэтому они не могут получить доступ к оборудованию.Я также получил предложение, что я должен использовать VBScript, чтобы получить серийный номер BIOS и передать его обратно в php.Мой VBScript выглядит следующим образом:

On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20


arrComputers = Array(".")
For Each strComputer In arrComputers
   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)

   For Each objItem In colItems
      WScript.Echo objItem.IdentifyingNumber
   Next
Next

Код вызывающего php ниже:

$WshShell = new COM("WScript.Shell");
$obj = $WshShell->Run("cscript mbs.vbs", 0, true);
var_dump($obj);

При выполнении VBS из командной строки, я получаю серийный номер, но при попытке сделать егоработать через php, я получаю только

int (1), напечатанные на веб-странице.

...