Adicionar várias soluções do farm usando o power shell (Não Implantar o)
-
09-12-2019 - |
Pergunta
Estou tentando migrar cerca de 200 wsps a partir de um farm do SharePoint 2010 para o outro.Eu já copiou o wsp arquivos para uma pasta no novo farm.
Eu preciso de um script powershell que pode tomar o caminho da pasta como entrada e adicionar todos os wsps localizado na pasta para a fazenda.Não quero implantar em vez disso, basta adicioná-los ao farm.
Exemplo De Entrada:-
C:\EXPORTEDWSP
Solução
Apenas forneça o caminho da pasta onde o WSP é localizado e a função irá adicionar todos os WSPs em Solução de armazenamento.
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
}
Outras dicas
Se você tiver uma pasta de WSPs apenas em uma fazenda, o script pode ser reduzido para:
$names = get-childitem F:\SPProdSolutionsExtract
foreach ($solution in $names) {Add-SPSolution -LiteralPath ("F:\SPProdSolutionsExtract\" + $solution.Name) }
Eu uso o Farm do SharePoint Solução Extrator para obter o WSPs a partir de um servidor e o script acima para adicioná-los ao farm.A instalação de uma solução de script é mais trabalho, uma vez que existem muitos tipos de WSPs e parâmetros.