[英]How to make Powershell wait on internal command to finish?
我有一个PS脚本,该脚本创建一个新的应用程序池,然后将其.Net版本更改为4.0:
new-webapppool -name 'ABC' -force
Set-ItemProperty IIS:\AppPools\ABC managedRuntimeVersion v4.0
作为Cloudformation堆栈创建的一部分,此脚本在AWS EC2实例上非交互运行。
我的问题是,随机出现以下错误:
Set-ItemProperty : Cannot find path 'IIS:\AppPools\ABC' because it does not exist.
我是否需要其他逻辑来强制PS脚本等待“ new-webapppool”命令完成? 如果是这样,正确的方法是什么?
从我的Google搜索中,我发现只有在执行外部程序(.exe等)的情况下,才应明确告诉它等待。 思考?
您可以添加一个while循环,该循环将等待直到之前的命令已完全复制到您所连接的云实例。 我觉得这是云的副作用。
new-webapppool -name 'ABC' -force
while (!(get-childitem IIS:\AppPools\ABC -errorAction SilentlyContinue)) {
start-sleep 5 # recheck every 5 seconds
}
Set-ItemProperty IIS:\AppPools\ABC managedRuntimeVersion v4.0
您还可以将-name
存储为变量,并在while循环中使用相同的变量。 这样,您不必为以后的每次代码运行都在多个位置更新String。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.