我正在尝试使用PHP的COM对象访问WMI。下面的方法适用于浏览器上的PHP,但是当PHP文件编译为Windows控制台应用程序时,我无法使其工作。
$obj = new COM ( 'winmgmts://localhost/root/CIMV2' );
$fso = new COM ( "Scripting.FileSystemObject" );
$csp = $obj->ExecQuery("Select * from Win32_ComputerSystemProduct");
foreach ( $csp as $wmi_csp )
{
$uuid = $wmi_csp->UUID;
}
我尝试过Bambalam BamCompiler,PHC-Win和Phalanger。 Bambalam无法工作,但没有返回任何错误消息。 Phalanger无法识别“COM对象”。我注意到所需的PHP扩展名为“php_com_dotnet.dll”。但是Phalanger没有附带这个扩展名。
我尝试将其添加到扩展库中,但Phalanger Extutil无法为其创建包装器(请注意,我复制到extensions文件夹的php_com_dotnet.dll版本与其他扩展文件版本不匹配)。
如何在Windows下使用COM对象和哪个PHP编译器?或者我如何让Phalanger接受所需的延期?