0

wsp ソリューションのアンインストール、削除、再インストールなどの複数のタスクを実行するパワー シェル スクリプトがあります。完全に完了します。現在、スリープ時間を与えていますが、マシンの速度が異なると問題が発生します..外部関数のようにメモ帳を呼び出すことについても認識していますが、ここでそれを行う必要はありません.それとは別に、解決策は利用可能です2番目のプロセスを開始する前に、最初のプロセスが完了するのを待つ必要があるように。

$InstallDIR = "F:\new\source\UpdatedWSPFiles"
$Dir = get-childitem $InstallDIR -Recurse
$WSPList = $Dir | where {$_.Name -like "*.wsp*"}
Foreach ($wsp in $WSPList )
{
$WSPFullFileName = $wsp.FullName
$WSPFileName = $wsp.Name
try
{
Write-Host -ForegroundColor White -BackgroundColor Blue "Working on $WSPFileName"
Write-Host -ForegroundColor Green "Retracting Solution"
Uninstall-SPSolution -AllWebApplications -Identity "$WSPFileName" -Confirm:$false 
sleep 100

Write-Host -ForegroundColor Green "Removing Solution from farm"
Remove-SPSolution -Identity "$WSPFileName" -Confirm:$false -Force
sleep 60

Write-Host -ForegroundColor Green "Adding solution to farm"
Add-SPSolution "$WSPFullFileName"  -Confirm:$false 
sleep 60
}
4

2 に答える 2

0

-wait スイッチを使用して start-process を試すことができます:

    PS> $p="C:\windows\System32\WindowsPowerShell\v1.0\powershell.exe"
    PS> $params="-command &{ if ((Get-PSSnapin `"Microsoft.SharePoint.PowerShell`" -ErrorAction SilentlyContinue) -eq $null) 
{
    Add-PSSnapin `"Microsoft.SharePoint.PowerShell`"
}
Uninstall-SPSolution -AllWebApplications -Identity `"$WSPFileName`" -Confirm:$false}"
    PS> Start-Process $p $params -Wait
于 2013-02-04T12:28:03.613 に答える
0

あなたが試すことができると思います

Start-Job -Name "jobname" -ScriptBlock { Uninstall-SPSolution -AllWebApplications -Identity "$WSPFileName" -Confirm:$false }

Wait-Job -Name "jobname" -Timeout "maximum wait time"
于 2013-02-05T23:37:34.500 に答える