2017-02-14 43 views
1

我想從我的服務器中檢索運行在遠程服務器上的處理器數量。 要做到這一點,我用這個命令行來檢查的信息:當使用PHP時,PSEXEC訪問被拒絕

C:\Users\Administrator>psexec -accepteula \\remote_computer_name -u remote_computer_name\admin -p my_password cmd /C "set number_of_processors" 

,並返回我想要的結果:

Command Line Result

但是,當我試圖以檢索相同的結果在PHP腳本中使用它,它表示訪問被拒絕。

PSEXEC v1.98 - 執行過程遠程版權所有(C)2001-2010馬克 Russinovich編寫的Sysinternals - www.sysinternals.com

訪問被拒絕。

連接到remote_computer_name ......在remote_computer_name開始PSEXEC 服務...不能在 remote_computer_name啓動PSEXEC服務:連接到remote_computer_name ...開始PSEXEC上remote_computer_name 服務...

這裏是我的PHP腳本:

<?php 
    function executeCmd($cmd,$params,$return) 
    {  
     //$resTable = array(); 
     $resInt = -1; 
     exec("$cmd $params",$resTable,$resInt); 
     //$resTable=shell_exec($cmd $params); 
     //print_r($resTable); 
     if($return == 40)// return associative table 
     return $resTable; 
     if($return == 41)// return int 
     return $resInt; 
    } 

    $cmd = "psexec"; 
    $params = " -accepteula \\\\remote_computer_name -u remote_computer_name\\admin -p password cmd /C \"set number_of_processors\" 2>&1"; 
    //$res = system($cmd,$params,40); 
    $res = executeCmd($cmd,$params,40); 

    for($i=0;$i<count($res);$i++) 
    { 
    print_r($res[$i]); 
    echo "</br>"; 
    } 
?> 

我在另一對服務器上使用相同的腳本,它工作得很好。我錯過了什麼 ?

回答

0

終於找到答案!我只將-h參數添加到我的命令行中。

-h如果目標系統是Vista或更高版本,則過程 將使用帳戶的提升標記(如果可用)運行。