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.
