从 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""")
我有一个从 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""")