Script do Powershell para Implantação e Ativação de Recursos do SharePoint 2010
-
09-12-2019 - |
Pergunta
Eu estou escrevendo script do Powershell para adicionar a minha solução,ativando a solução e, em última recursos de ativação no meu SP2010 servidor.Não há problemas em adicionar solução e implantação da solução.Problemas é quando eu tento ativar recursos com Permitem-SPFeature comando não encontrar o recurso no servidor através da INTERFACE do usuário as funcionalidades estão presentes.Eu duvido que ele tenta muito rapidamente, enquanto a implementação ainda está em seu caminho.Existe alguma maneira de verificar se a implementação estiver completa ou preciso reiniciar algum serviço ou algo.
Por favor, sugira
Solução
O que você está experimentando é mais provável de cache.
PowerShell está interessada em cache sua instanciados objetos como SPWeb e SPSite, e seu conteúdo, portanto, se você executar tudo em um grande nódulo você vai ver que, por exemplo, características adicionais não vai aparecer.
Uma forma simples de testar se este é o problema, tente dividir o script acima em duas.Em seguida, executar um script, fechar a shell, abrir e executar.
Se ele é executado sem problemas, isso é um problema de cache!
Nós resolvemos este pela geração de novos processos (Início do Processo de "PowerShell.exe" ....) com base em pastas:
010 Solutions
10 Solution
20 Features
020 Etc etc
A cada nova pasta é interpretado como um novo PowerShell instância.
Isso funciona bem, por isso eu recomendo uma abordagem semelhante.Uma abordagem mais simples seria a de simplesmente gerar um novo processo para executar o seu recurso de provisionamento:
$command = "your commands goes here"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
# encoded to avoid encoding and escaping issues
# STA ensures you are running single threaded, important as most SharePoint objects isnt multi threaded
Start-Process powershell.exe -NoLogo -encodedCommand $encodedCommand -STA