2017-01-24 12 views
0

WMI와 PHP가있는 Windows 시스템에서 소수 프로세스의 소유자를 얻으려고합니다. 이 기사를 사용하여 다음 PHP 코드를 작성했습니다. https://www.sitepoint.com/php-wmi-dig-deep-windows-php/ 모든 인스턴스의 속성을 가져올 수 있지만 소유자가 필요합니다. 그리고 Win32_Process 클래스에 메소드 "GetOwner"가 있는데, 여기서 소유자 (및 도메인 또는 ReturnValue)를 가져와야한다는 것을 알고 있습니다. 또한 WMI Explorer 및 WMI 코드 생성기를 사용하여 구문이 작동하는 방식을 이해하려고했습니다.PHP WMI는 프로세스 소유자를 얻습니다.

이 코드는 로컬 컴퓨터의 모든 프로세스 소유자를 표시합니다.

이 거의 모든 프로세스에 대한 반환
<?php 

    $pc = "localhost"; //IP of the PC to manage 
    $WbemLocator = new COM ("WbemScripting.SWbemLocator"); 
    $WbemServices = $WbemLocator->ConnectServer($pc, 'root\\cimv2'); 
    $WbemServices->Security_->ImpersonationLevel = 3; 

    $userlist = $WbemServices->ExecQuery ("Select * from Win32_Process"); 
     foreach ($userlist as $u) { 
      $owner= $u->GetOwner; //how to get the owner or domain here? 
      var_dump($owner); 
     } 

가 :

C : \ 사용자 \ MyUserName 에다 \ test_wmi.php : 22 : INT (0)

가 성공을 의미 여기 내 PHP 코드 같은 완료 여기에 설명 : https://msdn.microsoft.com/En-US/library/aa390460.aspx 끝에

, 나는 이런 식으로 뭔가를하고 싶어, VB에서 PHP와하지 만 : gallery.technet.microsoft.com/Monitor-Process-CPU-Pct-by-0f3a5a1c를 (죄송합니다. 두 개 이상의 링크를 게시 할 수 없습니다.)

누군가가 반환 코드가 아닌 소유자를 가져 오는 구문에 대해 알고 있습니까?

감사합니다. D

<?php 

    $pc = "localhost"; //IP of the PC to manage 

    $WbemLocator = new COM ("WbemScripting.SWbemLocator"); 
    $WbemServices = $WbemLocator->ConnectServer($pc, 'root\\cimv2'); 
    $WbemServices->Security_->ImpersonationLevel = 3; 

    $userlist = $WbemServices->ExecQuery ("Select * from Win32_Process"); 
     foreach ($userlist as $u) { 
      $owner= $u->ExecMethod_('GetOwner')->User; 
      var_dump($owner); 
     } 
:

답변

0

마지막으로 나는이 문제를 해결