Question

J'écris un script PowerShell pour ajouter ma solution, une solution d'activation et les dernières fonctionnalités d'activation sur mon serveur SP2010.Il n'y a pas de problèmes dans l'ajout de solution et le déploiement de la solution.Les problèmes sont lorsque j'essaie d'activer les fonctionnalités avec la commande Activer-SPFeature, il ne trouve pas la fonctionnalité sur le serveur cependant via UI les fonctionnalités sont présentes.Je doute qu'il essaie trop vite pendant que le déploiement est toujours sous sa route.Y a-t-il un moyen de vérifier si le déploiement est complet ou dois-je redémarrer un service ou quelque chose?

S'il vous plaît suggérer

Était-ce utile?

La solution

Ce que vous vivez est la mise en cache la plus probable.

PowerShell est désireux de mettre en cache vos objets instanciés, tels que SPWEB et SPSITE, et son contenu, de sorte que si vous exécutez tout dans une grosse morbelle, vous verrez que, par exemple, les fonctionnalités ajoutées ne s'affichent pas.

Un moyen simple de tester si c'est le problème, essayez de diviser le script en deux. Ensuite, exécutez d'abord un script, fermez la coque, ouvrez un autre et exécutez cela.

Si cela fonctionne sans problèmes, il s'agit d'un problème de mise en cache!

Nous avons résolu cela en accumulant de nouveaux processus (processus de démarrage "PowerShell.exe" ....) Basé sur des dossiers:

010 Solutions
    10 Solution
    20 Features
020 Etc etc

Chaque nouveau dossier est interprété comme une nouvelle instance PowerShell.

Cela fonctionne bien, alors je recommanderais une approche similaire.Une approche plus simple serait de simplement apparaître un nouveau processus pour exécuter votre fournisseur de fonctionnalités:

$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

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top