我试图运行这个:
$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变量正确传递?
我真的很感激!
答案 0 :(得分:2)
使用${IP}
精确指定变量名称。 :
实际上被认为是变量名称的一部分,它将范围或PowerShell驱动器与变量名称分开。因此,Powershell将变量解释为$ip:80
,其范围或驱动器为ip
,名称为80
。由于ip
未解析为范围或驱动器,因此该值为null。