2017-02-18 122 views
0

TL; DR:我試圖在PhP上運行基於Web的服務器。我知道PsExec可以工作,但它看起來很麻煩。如果任何人比PsExec有另一件事可以做到這一點,我願意嘗試。 (?或潛在修復)通過PhP運行cmd

到目前爲止,我已經試過的事情,包括一個很多

exec() 
passthru() 
system() 
shell_exec() 

和無那些作品。我的猜測是他們可以通過CMD 執行命令,如ipconfig/all(在服務器上工作正常),然後將其上傳到網站。換句話說,執行它,等待輸出,將其發送到服務器。

問題是:

我想運行一個.BAT/.EXE(我可以maky的EXE的.bat)的形式,而不是等待它,它有保持開放,因爲它是一個服務器的遊戲。

加入遊戲的端口(7777)是開放的,運行它可以讓我加入。所以我真的只需要通過PhP頁面運行它。

我試過使用PsExec,但由於某種原因,它錯誤很多與teamviewer?我認爲這是因爲它記錄我在一個「不同的」窗口會話...

因此,你!如果您對PsExec有任何建議,或者您對我有其他幫助,請繼續前進,結束我的一天!

回答

0

在Windows中可以做到這一點使用wmic process call create運行過程,不等待:

<?php 
$app = "notepad.exe"; 
$cmd = 'wmic process call create "'.$app.'"'; 
$output = shell_exec($cmd); 
+0

我試過你的啄,我想我可能做錯了?我創建了一個新的.bat,並運行在cmd(「START command.bat」)中,它說:$ app不被識別爲實習生命令/外部程序(法語)。 – Aelghar

+0

沒關係!我很愚蠢..我把你的東西放在我的代碼中,它看起來有用嗎?我的意思是,它沒有給我一個錯誤,但它也沒有打開任何東西。 運行它manualy工作壽! – Aelghar

+0

你會想用你的批處理文件替換notepad.exe(或者你可以使用完整的命令並繞過批處理文件)。 – Theo