从 VBScript 执行 PowerShell 命令

Execute PowerShell command from VBScript

我有一个从 IIS (8.5) 中删除虚拟文件夹的 PowerShell 命令

Remove-Item IIS:\Sites\WebsiteName\VirtualFolderName -Force -Recurse

这在从 PowerShell 控制台独立执行时工作得很好,但我想 运行 从 VBScript 内部执行。我有这样的 VBScript:

Set objShell = CreateObject("WScript.Shell")
objShell.Run("powershell.exe -noexit -Command='Remove-Item IIS:\Sites\WebsiteName\VirtualFolderName -Force -Recurse'")

当我在上面执行时,它不起作用,它只是在 PowerShell 控制台上输出命令。

这里有什么建议吗?

单引号只能在 PowerShell 中使用。 PowerShell 语句周围需要双引号,并且必须将它们加倍以在 VBScript 字符串中对它们进行转义。此外,删除参数 -Command 及其参数之间的 =。如果模块 WebAdministration 没有自动加载,您需要自己加载,否则您将没有驱动器 IIS:.

改变这个:

objShell.Run("powershell.exe -noexit -Command='Remove-Item IIS:\Sites\WebsiteName\VirtualFolderName -Force -Recurse'")

进入这个:

objShell.Run("powershell.exe -noexit -Command ""Import-Module WebAdministration; Remove-Item IIS:\Sites\WebsiteName\VirtualFolderName -Force -Recurse""")