无法 运行 来自 php 的 powershell 脚本
Can't run powershell script from php
我使用下面的 Powershell 脚本在思科设备上获取 show run
命令 运行 :
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 手动 click/run 这个脚本时工作正常。当我尝试通过 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 脚本之间的 link 有效。
我不明白问题出在哪里。
正如 jisaak 所评论的那样,问题是我的网络服务器无法到达目标目录。
通过正确硬编码路径,问题已得到解决。
我使用下面的 Powershell 脚本在思科设备上获取 show run
命令 运行 :
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 手动 click/run 这个脚本时工作正常。当我尝试通过 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 脚本之间的 link 有效。
我不明白问题出在哪里。
正如 jisaak 所评论的那样,问题是我的网络服务器无法到达目标目录。
通过正确硬编码路径,问题已得到解决。