SharePoint'te PowerShell Kullanarak Birden Çok WSP Çözümü Nasıl Dağıtılır?


Gereksinim: Bir sürü WSP çözüm paketim var ve bunların hepsini kopyalanmış bir SharePoint ortamına ekleyip dağıtmak zorunda kaldım.

Çözüm: PowerShell kullanarak tüm WSP çözümlerini bir klasörden SharePoint'e toplu olarak dağıtalım.

Birden çok çözümü toplu olarak eklemek için PowerShell betiği:

WSP çözümlerinin dağıtımı, SharePoint yöneticilerinin ortak bir görevidir. Bunu yapmanın birçok yolu olsa da PowerShell'i kullanmak özellikle aynı anda birden fazla WSP dağıtmanız gerektiğinde kullanışlı olabilir. Bu makale, SharePoint'te PowerShell kullanarak birden fazla WSP çözümünün nasıl dağıtılacağını gösterecektir.


Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue

Function WaitForInsallation([string] $SolutionName)
{
        Write-Host -NoNewline "Waiting for deployment job to complete" $SolutionName "."
        $WSPSol = Get-SPSolution $SolutionName
        while($wspSol.JobExists)
        {
            sleep 2
            Write-Host -NoNewline "."
            $wspSol = Get-SPSolution $SolutionName
        }
        Write-Host "job Completed" -ForegroundColor green
}

Function Deploy-SPSolution ($WSPFolderPath)
{
    #Get all wsp files from the given folder
    $WSPFiles = Get-childitem $WspFolderPath | where {$_.Name -like "*.wsp"}

    #Iterate through each wsp and Add in to the solution store
    ForEach($File in $wspFiles)
    {
        $wsp = Get-SPSolution | Where {$_.Name -eq $File.Name}

        if($wsp -eq $null)
        {
            write-host "Adding WSP solution:"$File.Name
            Add-SPSolution -LiteralPath ($WspFolderPath + "\" + $file.Name)
        }
        else
        {
            write-host "solution already exists!"

        }
    }
}

try
{
        Deploy-SPSolution "C:\WSPFiles"
}
catch
{
    write-host $_.exception
} 

SharePoint çözüm deposuna eklendikten sonra bunları hedeflenen web uygulamalarına/global olarak PowerShell kullanarak dağıtabilirsiniz.


Install-SPSolution -Identity "Solution-Name" -Webapplication "Web-App-URL" -GacDeployment -Force

Her çözümü manuel olarak dağıtmaktan bıktınız ve süreci otomatikleştirmenin bir yolunu mu bulmak istiyorsunuz? Tüm çözümleri tek seferde dağıtmak için aşağıdaki betiği kullanın:


#Deploy all installed solutions in the farm
Get-SPSolution | ForEach-Object { if (!$_.Deployed) {
 If ($_.ContainsWebApplicationResource -eq $False) {
    Install-SPSolution -Identity $_ -GACDeployment 
 }
else {
      Install-SPSolution -Identity $_ -AllWebApplications -GACDeployment 
   }
 }
}

SharePoint Çözümünü Manuel Olarak Dağıtın:

SharePoint Merkezi Yönetim sitesinden manuel olarak dağıtım yapabilirsiniz.

  • SharePoint 2013/2016 Merkezi Yönetim sitesine gidin.
  • Çiftlik Yönetimi altında Sistem Ayarları >> Çiftlik Çözümlerini Yönet seçeneğine tıklayın
  • Çözüm deposundan ilgili çözümü seçin
  • Çözümü dağıtmaya başlamak için “Çözüm Dağıt” seçeneğine tıklayın.

İlgili makaleler