1
運行PowerShell腳本我使用PowerShell腳本以下獲取Cisco設備上的show run
命令運行:無法從PHP
getconfig.ps1
$ErrorActionPreference ="Inquire"
Import-Module SSH-Sessions
$time ="$(get-date -f yyyy-MM-dd)"
$filename ="config"
$ext =".txt"
$filepath ="temp\"
$d1 ="x.x.x.x"
$u1 ="user"
$p1 ="password"
New-SshSession $d1 -Username $u1 -Password "$p1"
$c1 ="show run"
$Results = Invoke-Sshcommand -InvokeOnAll -Command "$c1" | Out-File "$filepath$filename-$time$ext"
Remove-SshSession -RemoveAll
exit
當我手動運行該腳本通過右鍵單擊/運行PowerShell,這很好。當我嘗試通過PHP運行這個腳本時出現問題。
的index.php
<?php
$output = shell_exec('powershell C:\wamp\www\getconf\script\getconfig.ps1');
echo "<pre>$output</pre>";
?>
的index.php負載永遠不會放棄我的輸出,不要再創建結果文件。
我試圖運行另一個腳本,如test.ps1,只是創建一個目錄,它的工作正常;我得到輸出,我的目錄被創建。
我的powershell腳本有效。
PHP和我的PowerShell腳本之間的鏈接工作。
我不明白問題出在哪裏。
嘗試對out-file路徑進行硬編碼,並確保webserver有權訪問它。如果這樣,使用'split-path -parent $ MyInvocation.MyCommand.Definition'來獲取執行腳本的路徑。 –
嘗試轉義$ filepath =「temp \」propertly($ filepath =「temp \\」) –
Jisaak - 你是我的英雄 – Will