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

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
scroll top