【发布时间】:2015-08-27 17:29:35
【问题描述】:
我们在经典 ASP 页面中使用 vbscript,在该 vbscript 中,我使用 Wscript 调用 Powershell。我想检查返回,因为它是为了告诉我 Powershell 是否成功完成。我在 Powershell 脚本中有一个返回值。我已经尝试了 objShell.Run 和 objShell.Exec,但没有一个允许 Powershell 返回值通过我的 ASP 页面。
我的问题:如何从 Powershell 获取返回值?
VBScript 如下:
'call PowerShell script with filename and printername and scriptname
strScript = Application("EnvSvcsPSScript")
Set objShell = CreateObject("Wscript.Shell")
dim strCommand
strCommand = "powershell.exe -file " & strScript & " " & strFileName & " " & strPrinterName
Set strPSReturn = objShell.Run(strCommand, 0, true)
response.Write("return from shell: " & strPSReturn.StdOut.ReadAll & "<br>")
response.Write("return from shell: " & strPSReturn.StdErr.ReadAll & "<br>")
Powershell 脚本:
$FileName = $args[0]
$PrinterName = $args[1]
$strReturn = "0^Successful"
"Filename: " + $FileName
"Printer: " + $PrinterName
try
{
get-content $FileName | out-printer -name $PrinterName
[gc]::collect()
[gc]::WaitForPendingFinalizers()
}
catch
{
$strReturn = "1^Error attempting to print report."
}
finally
{
}
return $strReturn
谢谢!
【问题讨论】:
标签: powershell vbscript wsh