我正在尝试使用带有 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 无法为其创建包装器(请注意,我复制到扩展文件夹的 php_com_dotnet.dll 版本与其他扩展的文件版本不匹配)。
如何使用 COM 对象,以及在 Windows 下使用哪个 PHP 编译器?或者我怎样才能让 Phalanger 接受所需的延期?