是否可以从VBScript运行Powershell代码?

时间:2017-06-22 07:49:02

标签: powershell vbscript integration

是否可以使用VBScript运行Powershell代码(而不是.ps1文件)? 例如,要在VBScript下调用Powershell函数(此脚本必须集成在VBScript代码中)。 如何使用VBScript执行外部.ps1脚本我知道,但我没有找到有关集成的任何信息。 有任何想法吗? 感谢

1 个答案:

答案 0 :(得分:2)

正如Filburt已经指出的那样,VBScript无法执行Powershell。但是,您可以执行的操作是启动Powershell并将脚本作为参数传递。像这样,

option explicit

Const WshRunning = 0
Const WshFinished = 1
Const WshFailed = 2

Dim objShell, oExec, strOutput, strPS1Cmd

' Store the ps1 code in a variable
strPS1Cmd = "& { get-date }"

' Create a shell and execute powershell, pass the script    
Set objShell = wscript.createobject("wscript.shell")
Set oExec = objShell.Exec("powershell -command """ & strPS1Cmd & """ ")

Do While oExec.Status = WshRunning
     WScript.Sleep 100
Loop

Select Case oExec.Status
   Case WshFinished
       strOutput = oExec.StdOut.ReadAll()
   Case WshFailed
       strOutput = oExec.StdErr.ReadAll()
 End Select

WScript.Echo(strOutput)

如果参数复杂,请考虑使用接受Base64编码命令的-EncodedCommand。方便解决报价逃逸等问题。