Script de PowerShell para despliegue y activación de funciones SharePoint 2010
-
09-12-2019 - |
Pregunta
Estoy escribiendo Script PowerShell para agregar mi solución, activar la solución y en las últimas funciones de activación en mi servidor SP2010.No hay problemas para agregar solución e implementar la solución.Los problemas son cuando intento habilitar las funciones con Enable-SPFeature Command no encuentra la función en el servidor, aunque a través de la UI están presentes las funciones.Dudo que intente demasiado rápido mientras el despliegue todavía está bajo su forma.¿Hay alguna forma de verificar si la implementación está completa o necesito reiniciar algún servicio o algo así?
Por favor, sugerir
Solución
Lo que estás experimentando es muy probable en caché.
PowerShell está interesado en almacenar en caché sus objetos instanciados, como SPWEB y SPSITE, y su contenido, por lo que si ejecuta todo en un gran bulto, verá que, por ejemplo, las funciones agregadas no se mostrarán.
Una forma simple de probar si este es el problema, intente dividir el script en dos. Luego, primero ejecute un script, cierre la cáscara, abra otro y ejecute eso.
Si se ejecuta sin problemas, este es un problema de almacenamiento en caché!
Hemos resuelto esto al desmarcar nuevos procesos (Start-Process "Powershell.exe" ...) basado en carpetas:
010 Solutions
10 Solution
20 Features
020 Etc etc
Cada nueva carpeta se interpreta como una nueva instancia de PowerShell.
Esto funciona bien, por lo que recomendaría un enfoque similar.Un enfoque más sencillo sería simplemente generar un nuevo proceso para ejecutar su aprovisionamiento de características:
$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