martes, 10 de abril de 2012

Cómo desmontar una base de datos de contenido de una Aplicación Web que ya no existe (SharePoint 2010)

Si lo intentas eliminar desde la interfaz Web de Administración o Central Administration te mostrará un error, porque el objeto ya no existen en SQL Server pero esta todavía referenciado en la granja de SharePoint. Por lo que es necesario hacerlo desde línea de comando.  La sintaxis de Dismount-SPContentDatabase es la siguiente:

Dismount-SPContentDatabase "<ContentdBName>"

Ya que las bases de contenido tienen nombres únicos y no pueden ser asociados a mas de una Aplicación Web, no es necesario definir otro valor como se muestra en la imagen de abajo.

image

Luego podrás revisar el Central Administration y validar que ya no esta asociada a la Web Application.

Dismount4Fun!,

Juan Manuel Herrera Ochetia

lunes, 9 de abril de 2012

Migración de base de datos de Contenido para Project Server 2010 deberá utilizar stsadm en vez de add-SPContentDatabase de PowerShell

 

Un dato curioso aunque Microsoft recomienda para la migración de sus bases de datos de contenido utilizar la línea de comando Add-SPContentDataase de PowerShell para Project Server 2010 no es la mejor práctica de echo fallará en la migración, para evitar los errores y advertencias que generá esta línea de comando lo mejor es utilizar el obsoleto stsadm.exe. 

Escriba la siguiente línea de comando, cuando ya haya restaurado las bases de datos de Project Server 2007 en el servidor de base de datos para SharePoint 2010:

STSADM.EXE -o addcontentDB –url [http://webapplication] –ds [databaseservername] –dn [WSS_Content]

Referencia:

http://technet.microsoft.com/en-us/projectserver/ee691958

Upgrade4Fun!,

Juan Manuel Herrera Ocheita

No se pudo realizar el aprovisionamiento del sitio PWA con error: Microsoft.Office.Project.Server.Administration.ProvisionException: Membership synchronization failed. ---> System.NullReferenceException: Object reference not set to an instance of an object.(Project Server 2010)

 

Este error se produce al momento de intentar aprovisionar las bases de datos restauradas de Project Server 2010.

Detalle del error:

Log Name: Application

Source: Microsoft-SharePoint Products-Project Server

Date: 03/04/2012 11:55:02 p.m.

Event ID: 6971

Task Category: Aprovisionamiento

Level: Error

Keywords:

User: dominio\usuario

Computer: servername.dominio

Description:

No se pudo realizar el aprovisionamiento del sitio PWA con error: Microsoft.Office.Project.Server.Administration.ProvisionException: Membership synchronization failed. ---> System.NullReferenceException: Object reference not set to an instance of an object.

at Microsoft.SharePoint.SPSite.PreinitializeServer(SPRequest request)

at Microsoft.SharePoint.SPWeb.InitializeSPRequest()

at Microsoft.SharePoint.SPWeb.InitWebPublic()

at Microsoft.SharePoint.SPWeb.get_Language()

at Microsoft.Office.Project.Server.BusinessLayer.SharePointSecurityHelper.DeleteRoles(SPWeb web)

at Microsoft.Office.Project.Server.BusinessLayer.SharePointSecurityHelper.ConfigureDefaultPWAWSSSecurityModel(SPSite topSite, SPWeb web)

at Microsoft.Office.Project.Server.BusinessLayer.Admin.<>c__DisplayClass18.<QueueUpdateUsersAddRemoveStatusOnPwaRootsAndWorkspaces>b__17()

at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2()

at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)

at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)

at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)

at Microsoft.Office.Project.Server.BusinessLayer.Admin.QueueUpdateUsersAddRemoveStatusOnPwaRootsAndWorkspaces(Dictionary`2 deletedUserUidsLoginNames, Guid[] addedUserUids, Boolean isFullSync, Boolean syncWorkspaces)

at Microsoft.Office.Project.Server.BusinessLayer.Admin.SynchronizeMembershipForPwaAppRootSite()

at Microsoft.Office.Project.Server.Administration.PsiServiceApplication.SynchronizePwaMembership(ProjectProvisionSettings provset, ProjectSite projectSite)

--- End of inner exception stack trace ---

at Microsoft.Office.Project.Server.Administration.PsiServiceApplication.SynchronizePwaMembership(ProjectProvisionSettings provset, ProjectSite projectSite)

at Microsoft.Office.Project.Server.Administration.PsiServiceApplication.CreateSite(ProjectProvisionSettings provset)

Event Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

<System>

<Provider Name="Microsoft-SharePoint Products-Project Server" Guid="{B2178104-1B5B-4C20-8C8F-960678CED9E5}" />

<EventID>6971</EventID>

<Version>14</Version>

<Level>2</Level>

<Task>20</Task>

<Opcode>0</Opcode>

<Keywords>0x4000000000000000</Keywords>

<TimeCreated SystemTime="2012-04-04T05:55:02.295013200Z" />

<EventRecordID>29153</EventRecordID>

<Correlation ActivityID="{022423DC-AE60-4591-B04C-DEB7341DF342}" />

<Execution ProcessID="9204" ThreadID="7496" />

<Channel>Application</Channel>

<Computer>full qualify name of computer name</Computer>

<Security UserID="S-1-5-21-1659004503-796845957-839522115-3677" />

</System>

<EventData>

<Data Name="string0">PWA</Data>

<Data Name="string1">Microsoft.Office.Project.Server.Administration.ProvisionException: Membership synchronization failed. ---&gt; System.NullReferenceException: Object reference not set to an instance of an object.

at Microsoft.SharePoint.SPSite.PreinitializeServer(SPRequest request)

at Microsoft.SharePoint.SPWeb.InitializeSPRequest()

at Microsoft.SharePoint.SPWeb.InitWebPublic()

at Microsoft.SharePoint.SPWeb.get_Language()

at Microsoft.Office.Project.Server.BusinessLayer.SharePointSecurityHelper.DeleteRoles(SPWeb web)

at Microsoft.Office.Project.Server.BusinessLayer.SharePointSecurityHelper.ConfigureDefaultPWAWSSSecurityModel(SPSite topSite, SPWeb web)

at Microsoft.Office.Project.Server.BusinessLayer.Admin.&lt;&gt;c__DisplayClass18.&lt;QueueUpdateUsersAddRemoveStatusOnPwaRootsAndWorkspaces&gt;b__17()

at Microsoft.SharePoint.SPSecurity.&lt;&gt;c__DisplayClass4.&lt;RunWithElevatedPrivileges&gt;b__2()

at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)

at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)

at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)

at Microsoft.Office.Project.Server.BusinessLayer.Admin.QueueUpdateUsersAddRemoveStatusOnPwaRootsAndWorkspaces(Dictionary`2 deletedUserUidsLoginNames, Guid[] addedUserUids, Boolean isFullSync, Boolean syncWorkspaces)

at Microsoft.Office.Project.Server.BusinessLayer.Admin.SynchronizeMembershipForPwaAppRootSite()

at Microsoft.Office.Project.Server.Administration.PsiServiceApplication.SynchronizePwaMembership(ProjectProvisionSettings provset, ProjectSite projectSite)

--- End of inner exception stack trace ---

at Microsoft.Office.Project.Server.Administration.PsiServiceApplication.SynchronizePwaMembership(ProjectProvisionSettings provset, ProjectSite projectSite)

at Microsoft.Office.Project.Server.Administration.PsiServiceApplication.CreateSite(ProjectProvisionSettings provset)</Data>

</EventData>

</Event>

Escenario de Instalación:

Posible Causa:

HotFix Jun 2011 SharePoint Fundation & Server 2010 (For User Profile Fix)

Solución:

Realizar el aprovisonamiento de Project Server 2010 sin el HotFix de Jun 2011.

El Plan:

Desinstalación de Project Server 2010 y SharePoint 2010.

El Procedimiento:

    1. Eliminar la instancia de PWA que no pude finalizar correctamente el aprovisionamiento.
    2. Eliminar el servicio de aplicación Project Server PWA Service.
    3. Desinstalar Project Server 2010.
    4. Desinstalar Paquetes de Idioma para SharePoint Fundation y Office Servers.
    5. Desinstalar SharePoint 2010.
    6. Reiniciar el servidor.
    7. Borrar todas las bases de datos creadas y restauradas.
    8. Restaurar las bases de datos de contenido y de ProjectServer a migrar.
    9. Verificar los pre-requisitos de SharePoint 2010.
    10. Instalar de Nuevo los bits de SharePoint 2010 con SP1 Incluido.
    11. Proceder a la instalación del Central Administration de SharePoint 2010.
    12. Configurar los servicios de BI necesarios para Project Server 2010.
    13. Crear la aplicación Web que hospedará el PWA.
    14. Desconectar al base de datos de contenido recién creada.
    15. Luego Project Server con SP1 Incluido.
    16. Luego Instalar Paquete de Idioma deseado para SharePoint Fundation y Office Servers.
    17. Ejecutar el Asistente de Productos y Tecnologías de SharePoint para cada versión de paquete de Idioma.
    18. Luego instalar el SP1 de cada paquete de idioma.
    19. Ejecutar el Asistente de Productos y Tecnologías de SharePoint para cada SP1 de versión de paquete de Idioma.
    20. Iniciar el proceso de migración de la base de datos de contenido de PWA con la siguiente línea de comando: STSADM.EXE -o addcontentDB -url http://webapplication –ds databaseservername –dn [WSS_Content]
    21. Ejecutar el aprovisionamiento de las bases de datos de ProjectServer restauradas.

Eso es todo, buena suerte!. Funciona solo sea cuidadoso!

Upgrade4Fun!,

Juan Manuel Herrera Ocheita

lunes, 2 de abril de 2012

Cómo aumentar el tamaño máximo de subida en los SharePoints (2007/2010)

En ambas versiones de SharePoint es a nivel de Aplicación Web, solo que están organizadas en diferentes opciones dentro del Central Administration, las cuales las vamos a ver a continuación:

En 2007 esta en el Central Administration, Administración de aplicaciones, Configuración general de la aplicación Web, como se muestra en la imagen de abajo:

clip_image002

Dentro de la opción encontrará una casilla denominada “Tamaño máximo de carga”.  (Recuerde seleccionar la aplicación Web Deseada a través de la casilla Aplicación Web).

clip_image002[5]

En 2010 esta en el Central Administration, Manage Web Applications, Web Application List, sobre la aplicación deseada hacemos clic sobre la opción General Settings del Ribbon del CA, como se muestra en la imagen de abajo:

image

Deslice la barra vertical hacia abajo hasta encontrar la misma opción del 2007, Maximum Upload Size.

image

En este artículo vimos como las mismas opciones están en ambas versiones solo que distribuidas gráficamente en otro lugar dentro del Central Administration.  Lo importante denotar aquí es que la arquitectura no cambio con la versión se mantuvo a nivel de Aplicación Web.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

miércoles, 28 de marzo de 2012

Migrando la mayoría de plantillas de 40 fantásticos de SharePoint 2007 a 2010

Microsoft no migró oficialmente las plantillas de sitios de SharePoint 2007 a 2010, sino TechSolutions a manera de contribución a la comunidad de usuarios de SharePoint puso a su disposición las plantillas para SharePoint 2010, pero sin indicar directamente que son las versiones actualizadas de 2007 y es por ello que escribo este artículo para que sirva de guía para realizar la migración de estos componentes, ya que solo instalarlas no hará que el proceso de migración valide que son las mismas.

El proceso será el siguiente:

1) Sacar un inventario de las personalizaciones instaladas en la granja de SharePoint 2007 (Para ello es necesario SP2 Instalado de WSS 3.0 y Office Server 2007, recomendado SP3) con preupgradecheck (operation).

2) Realizar la copia de la base de datos de contenido a migrar desde 2007 (normalmente tiene el nombre WSS_Content_[GUID])

3) Restaurar en el servidor de SQL Server donde esta instalado SharePoint 2010.

4) Donde esta instalado el Central Administration de SharePoint 2010, ejecutar en la ventana de SharePoint 2010 Shell o PowerShell para SharePoint 2010 el comando: test-spContentDatabase –Name WSS_Content_[GUID] –WebApplication [http://url addres].  Este listado mostrará las dependencias no instaladas en el servidor SharePoint 2010, coteje versus el reporte de preupgradecheck e identifique cada dependencia.

5) En el servidor de SharePoint 2007 dirijase al directorio Features dentro de directorio template del 12 hive (c:\program files\common files\microsoft shared\web server extentions\12) y ubique las “features” relacionadas con el reporte de test-spContentDatabase.

6) Copie las carpetas “reportadas” a 14 hive de la instalación de SharePoint 2010 (c:\program files\common files\microsoft shared\web server extentions\14).

7) Luego ejecute en la ventana de SharePoint 2010 Shell o PowerShell para SharePoint 2010 el comando: install-spfeature –path [Folder Copied in features directory].

8) Si marca un error que tiene dependencia de un assembly que no esta instalado ejecute los siguientes pasos:

8.1) Regrese al servidor SharePoint 2007 y vamos a extaer los ensamblados instalados allí para poderlos copiar. xcopy c:\windows\assembly\*.* C:\GACCopy\ /s /r

8.2) En el Servidor SharePoint 2010 instalar el esamblado utilizando el gacutil.exe –i [ruta del esamblado] posiblemente va a tener que instalar el SDK para el Windows Server que este instalado SharePoint 2010.

8.3) Reinicie el Servidor

8.4) Ejecute nuevamente el comando install-spfeature –path [Folder Copied in features directory] –force.

9) Ejecute de nuevo la línea de comando: test-spContentDatabase –Name WSS_Content_[GUID] –WebApplication [http://url addres], revise que ha eliminado de la lista esa dependencia faltante y continúe así para cada una de ellas.

10) Cuando depure la lista de los errores (no así de las advertencias), puede ejecutar una prueba con la línea de comando:

mount-spContentDatabase –Name WSS_Content_[GUID] –WebApplication [http://url addres]

o bien puede ejecutar el casi obsoleto stsadm de la siguiente forma:

stsadm -o addcontentdb -url [http://url addres]-databasename WSS_Content_[GUID]

Buena suerte!

Updgrade4Fun!,

Juan Manuel Herrera Ocheita

martes, 27 de marzo de 2012

Creando un archivo csv con la plantilla utilizada en todos los sitios con una sola línea en PowerShell para SharePoint 2010

Es muy útil en el proceso de migración listar las plantillas utilizadas en cada sitio para ubicar posibles errores de plantillas que no están instaladas o que no serán migradas.

Podemos utilizar el poder de PowerShell para SharePoint 2010 para en una sola línea generar un archivo csv que luego podemos filtrar en excel.  Veamos la línea de comando:

get-spsite http://yousitecolleccion_ulr | get-spweb -limit all | select -property title , url ,webtemplate  | export-csv plantillas.csv

Desglosemos y expliquemos que esta haciendo:

1) Instanciamos en memoria la colección de sitios

get-spsite http://yousitecolleccion_ulr

2) Del objeto instanciado en memoria solicitamos todos sus sitios web

| get-spweb -limit all

3) De cada sitio web queremos consultar las propiedades title, url y webtemplate

| select -property title , url ,webtemplate

4) Escriba el resultado en un archivo separados por comas y comillas

| select -property title , url ,webtemplate

Luego en Excel podemos abrir el archivo y seleccionar autofiltro y filtar la columna que deseemos, como se muestra a continuación:

image

Eso es todo, PowerShell4Fun!,

Juan Manuel Herrera Ocheita

domingo, 11 de marzo de 2012

3 pasos sencillos para habilitar la búsqueda federada en SharePoint 2010

Los 3 pasos para habilitar la búsqueda federada en SharePoint 2010 son:

1. Descargue la definición de la localidad federada

2. Importe el archivo

3. Agregue el elemento Web de resultados federados.

 

En detalle:

1. Para descargar la definición de localidad federada diríjase a la galería de Microsoft “Federated Search Connector Gallery for Enterprise Search” .  Por ejemplo seleccione Google News si es para SharePoint 2010 haga clic sobre el archivo GoogleNews.OSDX si es 2007 seleccione el archivo con extensión fld.

image

2. Luego en el Central Administration de SharePoint 2010 vaya al servicio de aplicación de Búsqueda y seleccione la opción Federate Locations que se encuentra en la parte inferior izquierda de la página.

image

Luego seleccione la opción Import Location.

image

Luego haga clic sobre el botón Browse y seleccione el archivo osdx que descargo y luego presione el botón Ok.

image

3.  Vaya al centro de búsqueda, busque cualquier palabra para que lo lleve a la página de resultados, Edite la página y presione la opción de Insertar Elemento Web.

image

Luego vaya a las propiedades del elemento Web y Seleccione Google News en la sección Propiedades de Ubicación, y presione el botón de Aceptar.  Finalice el modo de edición de la página y vea el resultado final.

image

Podemos agregar tantas ubicaciones federadas necesitemos, siempre y cuando tengamos el archivo OSDX.  Es una manera de integrar la búsqueda de nuestro contenido del portal con fuentes externas que están disponibles en la nube.

Recursos:

http://msdn.microsoft.com/es-es/library/ff960988.aspx

SharePoint4Fun!,

Juan Manuel Herrera O.