代码之家  ›  专栏  ›  技术社区  ›  Pankaj

从VBScript执行PowerShell命令

  •  0
  • Pankaj  · 技术社区  · 8 年前

    我有一个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控制台上发出命令。

    这里有什么建议吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Ansgar Wiechers    8 年前

    单引号仅在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""")