Как я могу использовать WMI из PHP - PullRequest
0 голосов
/ 16 февраля 2012

Прежде всего, я прошу прощения за новый вопрос! : D

Я хочу создать веб-сайт, чтобы сделать точно то, что сделали psands в следующей теме:

http://social.technet.microsoft.com/Forums/en/windowsserver2008r2virtualization/thread/697eafc2-7778-488b-8774-7554f84de642

он создал веб-сайт для управления виртуальными машинами, такими как create / start / stop .... Виртуальные машины, использующие API WMI для Hyper-v с asp.net

теперь он сделал это с ASP.NET, мой вопрос, могу ли я сделать это с PHP? другими словами, API поддерживает PHP?

Спасибо ..

1 Ответ

0 голосов
/ 22 августа 2015
class wmiConnect
{
    // WMI connection to specified host
    protected $connection;
    /**
     * Create a new wmi instance.
     *
     * @param   string  $host       Host name or IP address to connect to
     * @param   string  $username   Local host user with rights to query WMI; normally a local admin
     * @param   string  $password   Password of local user account
     * @return  void                New wmi object
     */
    public function __construct($host = null, $username = null, $password = null) {
        $wmiLocator = new \COM('WbemScripting.SWbemLocator');
        try {
            $this->connection = $wmiLocator->ConnectServer($host, 'root\\CIMV2', $username, $password);
            $this->connection->Security_->impersonationLevel = 3;
        } catch (\Exception $e) {
            // -2147352567 means that we're unable to connect to the local host with a username and password.
            // Attempt connection again passing null values for username and password.
            if ($e->getCode() == '-2147352567') {
                $this->connection = $wmiLocator->ConnectServer($host, 'root\CIMV2', null, null);
                $this->connection->Security_->impersonationLevel = 3;
            }
        }
    }
    /**
     * Get all properties of a WMI class.
     *
     * @param   string  $win32_class    Win32 class to retrieve data from
     * @return  object                  WMI collection object
     */
    public function getInfo($win32_class) {
        $WMIcollection = $this->connection->ExecQuery('SELECT * FROM ' . $win32_class);
        foreach ($WMIcollection as $WMIobj) {
            return $WMIobj;
        }
    }

}

Вот список классов для WMI: https://msdn.microsoft.com/en-us/library/aa394132(v=vs.85).aspx

Hyper-v для 2012 года имеет новое пространство имен - https://msdn.microsoft.com/en-us/library/hh850078(v=vs.85).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...