我正在更新经典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%
那样工作的任何想法吗?