Aggiungi più soluzioni agricole tramite Power Shell (non distribuire)
-
09-12-2019 - |
Domanda
Sto cercando di migrare circa 200 WSP da una fattoria SharePoint 2010 a un'altra.Ho già copiato i file WSP in una cartella nella nuova fattoria.
Ho bisogno di uno script PowerShell che può prendere il percorso della cartella come input e aggiungere tutti i WSP localizzati nella cartella in azienda.Non desidero implementare piuttosto semplicemente aggiungerli alla fattoria.
Ingresso di esempio: -
C: \ ExportatoWSP
Soluzione
Basta fornire il percorso della cartella in cui si trova WSP e la funzione aggiungerà tutti i WSP in Solution Store.
Remove-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
function WaitForInsallation([string] $Name)
{
Write-Host -NoNewline "Waiting for deployment job to complete" $Name "."
$wspSol = get-SpSolution $Name
while($wspSol.JobExists)
{
sleep 2
Write-Host -NoNewline "."
$wspSol = get-SpSolution $Name
}
Write-Host "job ended" -ForegroundColor green
}
Function Deploy-SPSolution ($WspFolderPath)
{
$wspFiles = get-childitem $WspFolderPath | where {$_.Name -like "*.wsp"}
ForEach($file in $wspFiles)
{
$wsp = Get-SPSolution | Where{$_.Name -eq $file.Name}
if($wsp -eq $null)
{
write-host "Adding solution"
Add-SPSolution -LiteralPath ($WspFolderPath + "\" + $file.Name)
}
else
{
write-host "solution already exists"
}
}
}
try
{
Deploy-SPSolution "C:\EXPORTEDWSP"
}
catch
{
write-host $_.exception
}
. Altri suggerimenti
Se si dispone di una cartella di WSP solo su una fattoria pulita, lo script può essere abbreviato a:
$names = get-childitem F:\SPProdSolutionsExtract
foreach ($solution in $names) {Add-SPSolution -LiteralPath ("F:\SPProdSolutionsExtract\" + $solution.Name) }
.
I Utilizzo dell'estrattore della soluzione agricole SharePoint per ottenere il WSP da un server e lo script sopra per aggiungerli alla fattoria.Lo script di installazione-soluzioni è più lavoro, poiché ci sono così tanti tipi di WSP e parametri.