Powershell变量在IIS appcmd中不起作用

时间:2015-09-18 17:35:49

标签: powershell iis

我试图运行这个:

$appcmd = "C:\windows\system32\inetsrv\appcmd.exe"
$env = "dev1"
$IP = "10.10.10.10"

& $appCMD set config -section:system.applicationHost/sites /+"[name='customapp1$env'].bindings.[protocol='http',bindingInformation='$IP:80:customapp1$env.domain.com']" /commit:apphost

这里的问题是appcmd命令中的$ IP变量。它确实修改了绑定属性,但是当我在IIS管理器中查看它时,它说"绑定信息不正确"并且只显示所有其他字段为空的HTTP。

如果我实际输入IP地址:

& $appCMD set config -section:system.applicationHost/sites /+"[name='customapp1$env'].bindings.[protocol='http',bindingInformation='10.10.10.10:80:customapp1$env.domain.com']" /commit:apphost

它工作正常(包括其他" $ env"变量)。如何让这个$ IP变量正确传递?

我真的很感激!

1 个答案:

答案 0 :(得分:2)

使用${IP}精确指定变量名称。 :实际上被认为是变量名称的一部分,它将范围或PowerShell驱动器与变量名称分开。因此,Powershell将变量解释为$ip:80,其范围或驱动器为ip,名称为80。由于ip未解析为范围或驱动器,因此该值为null。