在PHP中以特定用户身份运行Powershell脚本

在PHP中以特定用户身份运行Powershell脚本,php,powershell,Php,Powershell,我正在用php创建一个VBS,并将其保存到网络上的远程服务器上,然后创建一个powershell脚本来运行它并从php执行 $ITIMHOS = "ABD-DEF-123"; //create the ps1 $fs = fopen("\\\\spc-nsa-001\\nscap\\RunVBS.ps1","a"); //create batch file fwrite($fs,"Start-Process cmd.exe /c'\\\\spc-nsa-001\\nsca

我正在用php创建一个VBS,并将其保存到网络上的远程服务器上,然后创建一个powershell脚本来运行它并从php执行

$ITIMHOS = "ABD-DEF-123";    
//create the ps1
    $fs = fopen("\\\\spc-nsa-001\\nscap\\RunVBS.ps1","a"); //create batch file
    fwrite($fs,"Start-Process cmd.exe /c'\\\\spc-nsa-001\\nscap\\JP-Computer-import-".$ITIMHOS.".vbs'"); //write batch file contents
    fclose($fs);
VBS必须在远程服务器上运行,这就是为什么我要这样做,它必须由特定用户运行,这就是我遇到的问题。我目前使用的是:

 $psRun = '\\\\spc-nsa-001\\c$\\windows\\syswow64\\WindowsPowerShell\\v1.0\\powershell.exe'; //64bit server, 32bit web server
 $ps1File = '\\\\spc-nsa-001\\nscap\\runVBS.ps1';
exec($psRun.' -command '.$ps1File);

是否有人可以建议/帮助我如何使用不同的用户(DOMAIN\user.name,P4$$word)运行它。

您可以使用Invoke命令或输入PSSession。 下面是一个使用Invoke命令的示例

$computername = "remote computer"
$cred = Get-Credential
Invoke-Command -ComputerName $computername -Credential $cred -ScriptBlock {

    #command that you will run on remote system
}
请注意,为了使用这些cmdlet,必须配置WinRM。有关更多详细信息,请参见此处-