Я пытаюсь получить серийный номер 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), напечатанные на веб-странице.