Я использую следующий скрипт Powershell, чтобы получить show run
команда запускается на устройстве cisco:
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 работает.
Я не понимаю, откуда проблема.
Как прокомментировал jisaak, проблема заключалась в том, что мой веб-сервер не смог достичь каталога назначения.
Путем жесткого кодирования пути проблема была исправлена.
Других решений пока нет …