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

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top