如何在Powershell Invoke-Command 中使用appcmd 添加虚拟目录?
How to use appcmd in Powershell Invoke-Command to add a virtual directory?
我想在 Powershell 中使用带有 Invoke-Command 的 appcmd 添加虚拟目录。
我使用的参考来自:
1) appcmd to create virtual directory
2) Powershell Invoke-Command
这是代码片段:
$appCmdCommand2 = [string]::Format(
{"appcmd.exe set config -section:system.applicationHost/sites /+"[name='Default Web Site'].[path='/'].[path='/MyWebsite/dev',physicalPath='{0}']" /commit:apphost"},$folderName)
Invoke-Command -ComputerName ComputerAA -ScriptBlock {$appCmdCommand2}
当我 运行 上面的代码时,我不断收到错误提示:
Unexpected token 'name='Default Web Site'].[path='/'].[path='/MyWebsite/dev'' in expression or statement.
我是 Powershell 的新手,我一直在到处寻找如何解决这个问题。
是否有人可以告诉我如何更正我的 Powershell 代码段以便我可以创建虚拟目录?谢谢
您似乎遇到了引用问题以及一些无关字符。 String.Format 调用中的 {}
字符没有为您做任何事情。这里的双引号 "appcmd.exe
开始一个以 /+"
结尾的字符串,这使得它之后的所有内容都出错。您可以使用反引号 ` 字符对字符串中的双引号进行转义。
[string]::Format("appcmd.exe set config -section:system.applicationHost/sites /+`"[name='Default Web Site'].[path='/'].[path='/MyWebsite/dev',physicalPath='{0}']`" /commit:apphost",$folderName)
Powershell 还具有 -f 运算符,无需调用 string.format 即可进行字符串格式化,但您仍然需要转义引号。
$appCmdCommand2 = "appcmd.exe set config -section:system.applicationHost/sites /+`"[name='Default Web Site'].[path='/'].[path='/MyWebsite/dev',physicalPath='{0}']`" /commit:apphost" -f $folderName
Invoke-Command -ComputerName ComputerAA -ScriptBlock {$appCmdCommand2}
我想在 Powershell 中使用带有 Invoke-Command 的 appcmd 添加虚拟目录。
我使用的参考来自: 1) appcmd to create virtual directory 2) Powershell Invoke-Command
这是代码片段:
$appCmdCommand2 = [string]::Format(
{"appcmd.exe set config -section:system.applicationHost/sites /+"[name='Default Web Site'].[path='/'].[path='/MyWebsite/dev',physicalPath='{0}']" /commit:apphost"},$folderName)
Invoke-Command -ComputerName ComputerAA -ScriptBlock {$appCmdCommand2}
当我 运行 上面的代码时,我不断收到错误提示:
Unexpected token 'name='Default Web Site'].[path='/'].[path='/MyWebsite/dev'' in expression or statement.
我是 Powershell 的新手,我一直在到处寻找如何解决这个问题。
是否有人可以告诉我如何更正我的 Powershell 代码段以便我可以创建虚拟目录?谢谢
您似乎遇到了引用问题以及一些无关字符。 String.Format 调用中的 {}
字符没有为您做任何事情。这里的双引号 "appcmd.exe
开始一个以 /+"
结尾的字符串,这使得它之后的所有内容都出错。您可以使用反引号 ` 字符对字符串中的双引号进行转义。
[string]::Format("appcmd.exe set config -section:system.applicationHost/sites /+`"[name='Default Web Site'].[path='/'].[path='/MyWebsite/dev',physicalPath='{0}']`" /commit:apphost",$folderName)
Powershell 还具有 -f 运算符,无需调用 string.format 即可进行字符串格式化,但您仍然需要转义引号。
$appCmdCommand2 = "appcmd.exe set config -section:system.applicationHost/sites /+`"[name='Default Web Site'].[path='/'].[path='/MyWebsite/dev',physicalPath='{0}']`" /commit:apphost" -f $folderName
Invoke-Command -ComputerName ComputerAA -ScriptBlock {$appCmdCommand2}