目前使用TFS 2015更新3进行部署,我添加了“PowerShell on target machine”任务,该任务调用保存在IIS服务器上的PowerShell脚本,以便在部署之前停止网站:
icm -ComputerName $server -ScriptBlock {Import-Module WebAdministration; Stop-Website -Name $app}
会话变量为:$server = abc.xyz.com
,$app = DefaultWebSite
我得到的错误是:
运行命令已停止,因为首选项变量“ErrorActionPreference”或common参数设置为Stop:无法验证参数'Name'的参数。参数为null。为参数提供有效值,然后再次尝试运行该命令。“
如果我对服务器进行硬编码,那么相同的脚本也可以工作。申请名称。
答案 0 :(得分:1)
使用scriptblock,除非使用带有参数列表的param
或使用PowerShell 3+使用using:
范围修饰符,否则不能使用脚本作用域中的变量。
icm -ComputerName $server -ScriptBlock {Import-Module WebAdministration; Stop-Website -Name $using:app}