从 Excel VBA 运行 Powershell 命令(非脚本)

2024-03-14

我已经搜索过,并且可以找到大量从 VBA 运行 PowerShell 脚本的示例,但我找不到任何仅运行简单命令的示例。

例如,这有效:

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 命令写入文件,将其作为脚本执行,然后删除该文件,但这似乎不是很优雅。


要运行内联 Powershell 命令,您可能需要使用-Commandparam 并用引号括住您的语句。如果您在命令中使用单引号,也会更容易。

试试这个:

pscmd = "PowerShell -Command ""{Get-ScheduledTask -TaskName 'My Task' -CimSession MYLAPTOP}"""
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Excel VBA 运行 Powershell 命令(非脚本) 的相关文章

随机推荐