我有一个PowerShell命令可以从IIS(8.5)中删除虚拟文件夹
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控制台上的命令。
这里有什么建议吗?
答案 0 :(得分:1)
单引号仅适用于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""")