StdIn.Writeline在ASP中向PowerShell发送字符串失败

时间:2016-03-10 22:18:30

标签: powershell vbscript asp-classic

我正在更新经典ASP网页。似乎如果您尝试使用StdIn.Writeline向PowerShell发送命令,它将失败。它的行为类似于命令解释器只接受命令作为创建会话的一部分。

有没有人有任何工作示例将补充命令传递给Classic(非ASP.Net)网页上的开放PowerShell执行?

Command = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Powershell.exe -NoExit -inputformat none -ExecutionPolicy bypass  -NonInteractive -noprofile -Command ""& {""$PSVersionTable.PSVersion""; ""Add-PSSnapIn VMware* -ErrorAction SilentlyContinue""; 2>&1} "

Set oExec = WshShell.Exec(Command)

If oExec.Status = 0 Then
    oExec.StdIn.Writeline("Dir 2>&1")
    oExec.StdIn.Writeline("Exit")
    oExec.StdIn.Close()
    Do While oExec.StdOut.AtEndOfStream <> True
        Response.Write oExec.StdOut.ReadLine
    Loop
End If

当我尝试保持命令解释程序打开并使用StdIn.Writeline发送其他命令(包括exit命令)时,它永远不会关闭,我必须终止IIS服务器上的进程。

如果我删除-NoExit开关,它会在运行传递的字符串后关闭,显然我无法发送其他命令来运行。

有关如何让PowerShell像%comspec%那样工作的任何想法吗?

0 个答案:

没有答案