Pergunta

Quando tento desinstalar o WSP com a seguinte linha, está tudo bem:

Uninstall-SPSolution project.wsp # no error - OK

Quando tento adicionar o parâmetro switch -AllWebApplications, recebo um erro (algo como Esta solução não contém nenhum recurso para o escopo do aplicativo Web), o que também é bom:

Uninstall-SPSolution project.wsp -AllWebApplications # error X - OK

MAS, quando adiciono esse parâmetro switch com valor FALSE, recebo um erro (igual ao acima), o que está errado, não é?

Uninstall-SPSolution project.wsp -AllWebApplications:$false # error X again - WRONG

Parece que nada mudou em relação à linha anterior a esta, mas deveria...


De outro modo:Minha solução NÃO precisa AllWebApplication parâmetro, mas quero desativá-lo explicitamente (ou seja, especificá-lo com o valor FALSE).

Questão é:Como posso especificar esse parâmetro de opção como FALSE?


Acabei de notar que isso não está acontecendo com o cmdlet Install-SPSolution.

Foi útil?

Solução

Parece que Install-SPSolution e Uninstall-SPSolution foram escritos por dois desenvolvedores diferentes (ou pelo menos em momentos diferentes)

Ambos os comandos têm o potencial de aceitar nenhum, um único ou todos os WebApplications. A forma como eles lidam com essas opções é bastante diferente.

Instalar-SPSolução
Este é aquele bem codificado, onde a decisão se baseia em:

  • Verifique se obteve um valor não nulo em WebApplication, se sim, ele verifica se AllWebApplications é verdadeiro, se for, então é um erro, se não, é um único WebApp
  • se não for único, ele verifica se SwitchParameter AllWebApplications é verdadeiro; em caso afirmativo, são todos WebApps
  • se não, então não há WebApps

Solução de desinstalação SP:

Atribuiu conjuntos de parâmetros diferentes aos dois parâmetros, o que significa que você não pode especificar -WebApplication e -AllWebApplications independentemente dos valores, pois não será possível decidir a qual conjunto de parâmetros você se refere.

E então para "Seu bug" em vez de verificar o valor de -AllWebApplications, eles apenas verificam se o conjunto de parâmetros é "AllWebApplication", em caso afirmativo, eles ignoram qualquer valor que você especificou e apenas assumem verdadeiro

Outras dicas

Deve funcionar definindo -confirm como 0 ou false.

De todos os aplicativos da web:

Uninstall-SPSolution yousolutionname.wsp -AllWebApplications -Confirm:$false

De um aplicativo da web específico:

Uninstall-SPSolution -Identity yousolutionname.wsp -Confirm:0 -Webapplication $url
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top