我在 Stack Overflow 上搜索过,可以找到很多运行 PowerShell 脚本的 VBA 示例,但是我找不到任何运行简单命令的示例。
例如,这个可以工作:
Dim retval As Variant
retval = Shell("PowerShell ""C:\MyScript.ps1""", vbNormalFocus)
但这并不会:
Dim retval As Variant
Dim pscmd As String
pscmd = "PowerShell " & _
Chr(34) & "Get-ScheduledTask" & _
" -TaskName " & Chr(34) & "My Task" & Chr(34) & _
" -CimSession MYLAPTOP" & Chr(34)
retval = Shell(pscmd, vbNormalFocus)
Debug.Print pscmd
'pscmd = PowerShell "Get-ScheduledTask -TaskName "My Task" -CimSession MYLAPTOP"
我知道我可以把PS命令写到一个文件中,将其作为脚本执行,然后删除该文件,但这似乎不太优雅。