Pregunta

Tengo un ensamblaje personalizado que contiene código para configurar variaciones para un sitio de publicación de SharePoint 2010. Este código se basa en un Publicación de blog de Waldek

Tengo un script de PowerShell en el que creo una nueva aplicación web y Sitecollection, luego carga mi ensamblaje personalizado e intento invocar métodos que configuran las variaciones. El problema es que la propiedad CurrentUser del SpWeb (RootWeb) estoy tratando de trabajar con devoluciones nulas, que es la causa subyacente del acceso se niega el error que recibo.

Si descompongo esto en dos scripts, uno para hacer la creación y otro para llamar al código personalizado, funciona, siempre que los llame a ambos de manera interactiva. Si los envuelvo en un solo guión de padres que invoca a cada uno de ellos a su vez, vuelvo a que CurrentUser sea nulo.

Ahora, para mi uso requerido, necesito que esto funcione en el contexto de una sola instalación desatendida.

¿Alguien ha visto esto o algo simial? ¿O tienes alguna idea de cómo podría superar este problema?

¿Fue útil?

Solución

La forma en que describe esto, suena como un problema de almacenamiento en caché, ya que PowerShell depende en gran medida del almacenamiento en caché.

Evito esto en mis guiones de aprovisionamiento generando nuevos procesos de PowerShell en la marcha desde mi consola principal. Esto también se puede utilizar para garantizar que las conchas se denominan administrador, cuando la UAC está habilitada:

$shell = Start-Process powershell -verb runas -Passthru 

Passthru hace posible salir de conchas con códigos de retorno. El verbo Runas corre la carcasa elevada.

Otros consejos

He visto similar a la falta de un spContext activo. Esto puede ser relevante, pero vale la pena verificar. Hay una técnica Puede usar para crear un envoltorio que sea bastante útil (también uso esto en las aplicaciones de consola).

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