2

powershell +プロセスの終了を待っているというトピックをたくさん見ましたが、どういうわけかうまくいきません。私はこれを持っています:

Add-PsSnapin Microsoft.SharePoint.Powershell

Add-SPSolution sol.wsp

Install-SPSolution -identity $sol -GACDeployment

Install-SPFeature "feature"

私がやろうとしているのは、新しいSharepoint(2010)ソリューションを追加してから、ソリューションをインストールしようとし、最後に機能をインストールしようとすることです。

ソリューションのインストールには多少時間がかかりますが、彼はすでに機能をインストールしようとしているため、最後のものは失敗しています。Install-SPFeature : Failed to find the XML file at locationスクリプトを再度開始するとエラーが発生し、機能をインストールできます。この問題を処理するためにスクリプトを変更するにはどうすればよいですか? 確かにStart-Sleep -s 2何かを使用できますが、それは最善の方法ではありません。| Out-Nullまたは-Wait機能していません。プロセスまたはそれがすでに行われているためだと思いますが、ソリューションがインストールされたことをWindowsが認識するのに数秒かかります。何か案は?ありがとうございました

4

3 に答える 3

2

私が使用する展開スクリプトのスニペットを次に示します。

Write-Host "Deploying solution: $SolutionPackageName"
$Solution = Get-SPSolution | ? {($_.Name -eq $SolutionPackageName) -and ($_.Deployed -eq $false)}
Install-SPSolution -Identity $SolutionPackageName -GACDeployment -Confirm:$false -force
$index = 0 
[DateTime] $startingTime = [DateTime]::Now.AddMinutes(2) 
while($Solution.JobExists) 
{ 
    $index++ 
    if($startingTime -lt [DateTime]::Now) 
    { 
        Write-Host "Deployment job: $SolutionPackageName failed. Deployed = $Solution.Deployed, Index = $index"
        break 
    } 
    Write-Host "Deployment job: $SolutionPackageName is still running. Deployed = $Solution.Deployed, Index = $index"
    Start-Sleep -s 5 
    $Solution = Get-SPSolution | ? {$_.Name -eq $SolutionPackageName}
} 
Write-Host "Deploying solution: $SolutionPackageName - Done."

はい、それは を使用しStart-Sleepていますが、ソリューションが実際にデプロイされたときにスクリプトがそれをスマートに使用していると思います。個人的には、スクリプトがハングしていないことを画面に表示するフィードバックが気に入っています。2分を超えたケースは一度もありませんが、最大10個の「実行中」メッセージが表示されたことは間違いありません.

于 2012-04-10T20:12:05.883 に答える
1

Start-Jobを使おうとしましたか?

$sb = { Install-SPSolution -identity $sol -GACDeployment }
$job = start-job -scriptblock $sb
Wait-Job $job  | Out-Null
$retMsg = Receive-Job $job
于 2012-04-10T14:39:46.957 に答える
0

Start-Processオプションで使用でき-Waitます:

Start-Process Powershell "Install-SPSolution -identity $sol -GACDeployment" -Wait

Install-SPFeature "feature"
于 2012-04-10T15:07:33.750 に答える