[英]How To start/stop IIS 6.0/7.0 remotely using PowerShell Scripts?
[英]Powershell, start or stop iis site using msdeploy
我试图将我的批处理脚本迁移到 powershell。
我尝试编写脚本并从 powershell ise 运行它。
$sites = @("abc","xyz","pqr")
foreach ($site in $sites)
{
msdeploy -verb:sync -verbose -source:runcommand -dest:runcommand="$env:windir\system32\inetsrv\appcmd stop site /site.name":$site
}
当我运行命令(msdeploy)时,它可以从命令提示符完美运行。
我收到以下错误(附后):
如果有人可以帮助我,我将不胜感激。 提前致谢。
您需要使用Invoke-Expression
,它允许您将字符串作为命令执行。 将您的命令存储为字符串并将其作为参数传递给Invoke-Expression
。
$sites = @("abc","xyz","pqr")
$commandPrefix = 'msdeploy -verb:sync -verbose -source:runcommand -dest:runcommand="$env:windir\system32\inetsrv\appcmd stop site /site.name"'
foreach ($site in $sites)
{
$command = $commandPrefix ":" $site
Invoke-Expression $command
}
经过这么多的斗争,我想通了,并解决了这个问题。
foreach($site in $sites){
msdeploy -verb:sync -verbose -source:runcommand -dest:runcommand=`"$env:windir\system32\inetsrv\appcmd stop site /site.name`":"$site",computername="$serverName",username="$user",password="$passCode"
}
它只是一个帮助我运行脚本的转义字符(“`”)。
我希望它能在不拉头发的情况下帮助某人。
您还可以尝试使用 recycleApp 提供程序:
msdeploy -verb:sync -source:recycleApp -dest:recycleApp="MySite",recycleMode="StopAppPool"
//deploy and sync content
msdeploy -verb:sync -source:recycleApp -dest:recycleApp="MySite",recycleMode="StartAppPool"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.