SharePoint Latin Rotating Header Image

Herramienta Central de Administración SharePoint

Recuperando datos desde una bases de datos de contenido SharePoint existente en SQL Server

En SharePoint 2010 y 2013 los administradores SharePoint tenemos la posibilidad de recuperar información desde una base de datos de contenido SharePoint que no necesariamente este montada sobre nuestra granja sino más bien solamente restaurada en SQL Server permitiéndonos realizar nuestra recuperación en menos tiempo y sin tanta configuración. Explico, en pasadas versiones para poder recuperar información desde un respaldo de una base de datos de contenido SharePoint normalmente teníamos que montar la base de datos restaurada sobre nuestra granja SharePoint, usando tanto comandos stsadm como la herramienta central de administración. Con SharePoint 2010 y 2013 no necesariamente es el caso, podemos hacerlo como antes o simplemente usar la herramienta central de administración para explotar el contenido de una base de datos SharePoint montada simplemente en un servidor SQL Server reduciendo con esto los tiempos de nuestros acuerdos de servicio ‘SLAs” y claro, ser más proactivos en la recuperación de datos.


Veamos entonces como lograrlo.


Accedemos a la herramienta central de administración y damos clic sobre el menú de respaldos y restauración para posteriormente seleccionar la opcion de recuperación de datos desde una base de datos no adjuntada.


unattached01


Especificamos el nombre e instancia de nuestro servidor SQL Server o bien el SQL Alias si es el caso donde se encuentra adjuntada nuestro respaldo de la base de datos de contenido SharePoint, especificamos el nombre de la base de datos a la cual nos queremos conectar para obtener los objetos SharePoint que requerimos recuperar. Seleccionamos el tipo de recuperación que queremos hacer, por ejemplo, podemos recuperar una colección de sitios, un sitio web o una lista.


unattached02


Usamos el explorador para buscar en este caso la colección de sitios que nos interesa recuperar directamente sobre la base de datos de contenido adjuntada en SQL Server. Como podemos ver, SharePoint es capaz de presentar todas las colecciones de sitio existentes, así mismo, SharePoint es capaz de explorar sitios web dentro de las colecciones e incluso listas y librerías.


unattached03


Una vez que elegimos el objeto a recuperar especificamos una ruta compartida y un nombre de un archivo físico donde será respaldado el contenido proveniente de la base de datos en cuestión. Posteriormente damos iniciar al proceso de respaldo.


unattached04


También, podemos monitorear el proceso en ejecución.


unattached05


unattached06


Al terminar validamos el archivo de respaldo generado.


unattached07


Y para finalizar simplemente ejecutamos un comando PowerShell para realizar el proceso de restauración del respaldo en cuestión sobre una colección de sitios existente en nuestra granja. El comando para restaurar una colección de sitios respaldada es:


Restore-SPSite http://intranet/teams/sp -Path \\d21-da\Scripts\backup\sp.bak


Validamos entonces la restauración y removemos el respaldo de la base de datos adjuntada en SQL Server. Esta es una técnica que permite recuperar información de una respaldo, asegúrate de definir un tiempo de respaldo SQL valido para que con ello puedas ser capaz de definir lo que llamamos el tiempo aceptable de perdida de datos. Por ejemplo, si tus respaldos SQL Server se ejecutan al final del dia, esto quiere decir que solamente puedes recuperar información de un día anterior y que tu potencial perdida de datos es de horas.

Resumen de la Initicativa Video Implementación de SharePoint 2013 en Windows Server 2012

Esta semana he tenido la oportunidad de publicar en mi canal de Youtube algunos videos entorno al proceso de configuración que hacemos cuando implementamos SharePoint, esta serie de pequeños videos seguirá poco a poco hasta que logre documentar en video la implementación y configuración de una granja SharePoint. Ya en el pasado había publicado otros videos entorno a la configuración de un ambiente y resumiendo aquí está la lista de videos en orden descendente por fecha de publicación. Gracias por verlos y no olviden comentar cualquier duda que tengan en la sección de comentarios de cada video.

 

serie 05  - cuentas de servicio de sharepointserie 04 - clonandomaquinasvirtualesserie 03 _activando licencia de windows serverserie 02 _configurando servicio de certificadosserie 01 _configurando controladore de dominio

Administrando una instancia de Office 365 con PowerShell

Pues tengo la necesidad de crear un gran número de colecciones de sitio sobre una instancia de Office 365 y con el objetivo de reducir el marco de error por hacerlo mediante una intervención manual he decidido incrementar la consistencia y reducir el riesgo de fallo mediante la automatización del procedimiento en un script de PowerShell. Ademas de que son otras las personas que terminarán haciendo esta clase de operación.

Los pasos para poder conectarnos a Office 365 mediante PowerShell son:

  1. Instalamos Windows PowerShell 3.0 descargando Windows Management Framework 3.0.
  2. Instalamos el SharePoint Online Management Shell descargándolo del Microsoft Download Center
  3. Ejecutamos de Inicio > Programas > SharePoint Online Management Shell
  4. Ejecutamos el comando Connect-SPOService y proporcionamos la ruta de nuestro Central Administration de Office 365 así como también nuestro usuario y password de administrador.
  5. Ahora sí, puedes hacer lo que quieras usando los comandos de PowerShell para SharePoint Online o usando esta aplicación.

image

PD. Trata de NO utilizar algún servidor de tu ambiente SharePoint On Premise para  administrar una instancia de Office 365 o SharePoint Online.

Enlaces en el menu superior del My Site

Una pregunta que me dejó intrigado durante un exámen de certificación SharePoint mencionado aquí, fué que especificara como podríamos agregar un enlace en la barra superior del My Site para permitir a los usuarios regresar fácilmente al portal principal. Y bueno la respuesta es usando la opción de “Configure Personalization Site” ubicado dentro de la adminsitracion del User profile Service Application.

image

Utilice esta opción para agregar enlaces de navegación personalizados al My Site. Puedes elegir quien será el responsable o dueño del enlace y también que audiencia lo puede ver, esto significa que dependiendo de la audiencia ciertos enlaces pueden mostrarse.

SNAGHTML2430ef

Los enlaces agregados serán mostrados en el menú superior del My Site.

image

Instalando Granja de Servidores SharePoint 2010 Small Farm (3-Tier)

Para un programador SharePoint es importante conocer la arquitectura de la plataforma y en ese sentido realizar un proceso de instalación de una granja SharePoint es un deber. En esta ocasión quiero compartir como lograr en una topología llamada Small Farm (Three Tier).


clip_image001


Básicamente tenemos un software (Network Load Balancing) para balancear y distribuir la carga entre dos servidores Web Front End (litwarewfe1 y litwarewfe2) y tendremos un solo servidor de aplicaciones (litwareapp) con la mayoría de las aplicaciones de servicio y la herramienta central de administración configurada, todo el contenido y la configuración será almacenada sobre un solo servidor de base de datos SQL Server (litwaredb).


Network Load Balancing en Windows Server 2008 R2 para WFE de SharePoint 2010



Configurando Granja de Servidores SharePoint 2010



Configurando Granja de Servidores SharePoint 2010 con PowerShell


Como restablecer el sitio web de IIS “SharePoint Web Services” cuando éste es eliminado por error en SharePoint 2010

Algo que me gusta de trabajar como ingeniero de soporte freelance es el orgullo que te da ganar esas pequeñas batallas contra la ignorancia.


Problema


El problema fue que se extendió una aplicación web de SharePoint usando el sitio web de IIS “SharePoint Web Services”. Antes que cualquier otra cosa, este sitio web de IIS hospeda algunos servicios WCF de sistema los cuales se configuran en todos los WFE de la granja y son utilizados por algunas aplicaciones de servicio, el asistente de configuración de SharePoint es el encargado de aprovisionar este sitio web en tiempo de instalación y configuración de la granja. 


image


Lo que sucedió es que al extenderse esta aplicación web en este caso “MySite” se detuvieron aplicaciones de servicio y quedo totalmente inoperable. El resultado fue desastroso para la granja ya que se detuvieron las aplicaciones de servicio Manage Metadata, User Profile y en este caso el portal de MySite de todo el corporativo. El mensaje de error al intentar acceder al portal fue Could not load user profile, adicional el visor de eventos empezó a regitrar An exception occurred when trying to issue security token: The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.


Como primera reacción de cualquier ser humano es la de des extender el portal.


image


Inyectando con esto un problema mayor ya que al remover vía herramienta de administración SharePoint el sitio web de IIS causa que las carpetas asociadas en el sitio web sean eliminadas de la ruta a la que apunta, en este caso C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebServices\Root.


La solución


La solución a este escenario fue ejecutar el script mencionado en el post How to get back the SharePoint WebServices application in IIS if deleted, SharePoint 2010   para regenerar el sitio web de IIS “SharePoint Web Services”,  este proceso en efecto si aprovisiono de nuevo el sitio web de IIS, sin embargo, al dar clic sobre el marcaba un error indicando que no existía la ruta de los archivos lo cual es totalmente correcto ya que al des extender se elimino todos los archivos de la ruta a donde apuntaba.


image


Lo que se decidió fue buscar la carpeta Root de otra granja y copiarla sobre la carpeta en cuestión. Posteriormente se ejecuto de nuevo el siguiente codigo encontrado aqui: How to get back the SharePoint WebServices application in IIS if deleted, SharePoint 2010. Basicamente lo que el procedimiento hace es cargar una instancia de la place SPIisWebServiceInstanceSettings e invoca un par de metodos para realizar el aprovisionamiento del sitio web de IIS sobre el servidor. Una vez que es aprovisionado se procede a realizar un ciclo donde por cada aplicacion de servicio es aprovionado el nuevo sitio web de IIS restableciendo con esto la vinculacion y la dependencia al mismo.


$webservice = [System.Type]::GetType(“Microsoft.SharePoint.Administration.SPIisWebServiceSettings, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”)


$Instance = $webservice::Default


$Method = $webservice.GetMethod(“ProvisionLocal”, “Instance, NonPublic”, $null, @(), $null)


$Method.Invoke($Instance, $null)


$Method = $webservice.GetMethod(“Provision”, “Instance, Public”, $null, @(), $null)


$Method.Invoke($Instance, $null)


Get-SPServiceApplication | ForEach-Object {$_.Provision()}


En resumen


Cuando inicias con una nueva plataforma  y estas en proceso de aprendizaje es comun o normal que sucedan detalles, errores, situaciones de configuracion por error, la recomendacion es revisar cualquier procedimiento en una granja de pruebas para validar el proceso y los resultados previamente.  Aqui dos enlaces donde platico algunas consideraciones al respecto: Que se necesita para ser consultor y/o desarrollador SharePoint y Consideraciones para poner en marcha soluciones personalizadas SharePoint en ambientes de producción de nuestros clientes.


Saludos

Configurando User Policy en SharePoint 2010

Como parte de los procesos internos de diagnóstico de amenazas y riesgos de seguridad que cualquier área de IT anualmente realiza, se tienen herramientas automatizadas para evaluar aplicaciones y su nivel de vulnerabilidad. Se nos ha solicitado dar permisos de acceso a una cuenta de usuario temporal para realizar una prueba de la superficie de seguridad de SharePoint. Y la pregunta que surge es en donde le daremos permisos a esta cuenta temporal para acceder a evaluar. Uno pensaría que en el Top Level Site Collection en algún grupo de seguridad podríamos asignarle permisos de acceso a dicha cuen

ta, sin embargo, que pasa cuando tenemos gran cantidad de site collections, ¿tendríamos que acceder a dar permisos de acceso en cada una?

Una alternativa aceptable para lograr dar permisos globales y de forma temporal a esta cuenta es la opción de User Policy que existe en las propiedades de un Web Application dentro del Central Administration.

Seleccionamos Manage Web applications y de la lista elegimos la aplicación web donde aplicaremos la política, después damos clic sobre User Policy.

image 

Dentro de User Policy seleccionamos Add User y especificamos sobre qué zona dentro del Web Application estaremos otorgando permisos. En este caso utilizare All Zones, sin embargo podríamos ser lo suficientemente estrictos como para especificar en cuál de las zonas disponibles esta política de acceso tendría efecto.

image

A dar clic en Next capturamos la cuenta de usuario temporal y el nivel de permisos que tendrá sobre la zona previamente especificada. Lo interesante aquí es que para la cuenta en cuestión podemos elegir el nivel de permiso y para no dejar rastro de la cuenta o proceso automatizado de evaluación sobre los cambios o accesos realizados seleccionemos la opción de que la cuente se muestre como System Account.

image

El resultado es el control de los permisos que las cuentas tienen sobre nuestras aplicaciones web de SharePoint. En cualquier momento un administrador puede acceder y remover los permisos.

image

Con esto durante damos una alternativa de solución para el escenario de acceso temporal para pruebas de seguridad realizadas por el área de IT como parte de sus procesos regulatorios internos.

¿Cuál es la primer lección de un administrador SharePoint 2010?

Por ahí un compañero me comentó que tenía el siguiente error cada que intentaba agregar una solución SharePoint 2010 en su granja de desarrollo.

El error era:

Insufficient SQL database permissions for user ‘Name: DOMAIN\spadmin SID: S-1-5-21-1455513522-927615373-1062434389-54912302 ImpersonationLevel: None’ in database ‘DEV_SharePoint_Config’ on SQL Server instance ‘SPMACHINE’. Additional error information from SQL Server is included below.

The EXECUTE permission was denied on the object ‘proc_putObject’, database ‘DEV_SharePoint_Config’, schema ‘dbo’.

Y bueno, al averiguar cómo estaba haciendo el deploy me dí cuenta que estaba trabajando con stsadm.exe –o addsolution sobre SharePoint 2010, este comando se sigue soportando y sin duda alguna es de mucha utilidad para aquellos administradores que gestionaban granjas de SharePoint 2007.

Se supone que en SharePoint 2010 la manera más adecuada de realizar este tipo de operaciones es usando Power Shell ya que el Snap In de SharePoint se encarga de otorgar los permisos necesarios a la cuenta en cuestión para ejecutar comandos sobre los objetos de base de datos requeridos, como por ejemplo el rol “SharePoint_Shell_Access” sobre la base de datos de configuración de la granja como se especifica aqui http://technet.microsoft.com/en-us/library/ee806878.aspx.

Ante este escenario tenemos varias opciones.

Opción 1: Hacer el deploy usando SharePoint 2010 Management Shell

Aquí se indica como hacer deploy usando Power Shell. http://technet.microsoft.com/en-us/library/cc262995.aspx#Importing el cual al cargar el Snap In de SharePoint sobre la consola de Power Shell de forma automática establece los permisos requeridos para ejecutar operaciones de configuración.

Opción 2: Asignar el rol requerido en SQL Server

1. Acceder a SQL Server Management Studio

2. Expandir el árbol para buscar la carpeta de Security y después Logins

3. Acceder a las Properties de la cuenta con la cual estamos haciendo el deploy

4. Elegir User Mappings

5. Elegir la base de datos de configuración de la granja SharePonit_Config

6. Elegir de los roles que se tienen en la base de datos el de SharePoint Shell Access y dar clic en Ok.

image

7. Ejecutar el deploy usando la consola de Windows y ejecutando el comando stsadm.exe –o addsolution –filename “path del wsp”

Opción 3: ejecutar el comando stsadm.exe usando la consola SharePoint 2010 Management Shell

La primer lección que un administrador SharePoint 2010 debe aprender es siempre utilizar SharePoint 2010 Management Shell como su principal herramienta de adminsitración SharePoint. :)

image

HG
SharePoint Developer! :)

Respaldo y restauración granular de un sitio de equipo en SharePoint 2010

A continuación los pasos para realizar un procedimiento de respaldo y restauración granular de un sitio SharePoint 2010.

Accedemos a la herramienta central de administración SharePoint y seleccionamos Backup and Restore y después la opción de Export a site or list. Esta opción nos permite hacer un respaldo de sitios y/o elementos como listas o bibliotecas de forma granular, esta opción básicamente hace uso de Content Deployment para empaquetar en un archivo .cmp un sitio o lista el cual posteriormente podremos restaurar.

clip_image002

Ya dentro de Export a Site or List elegimos la colección de sitios de donde se encuentra el sitio que requerimos, buscamos de la lista el sitio en particular que necesitamos respaldar. Como se puede observar podemos llegar a un nivel mayor “lista” de respaldo granular. Es muy importante especificar la ruta en donde se depositaran los archivos de nuestra exportación, en este caso el servidor es splapp y la carpeta backup, es importante asegurarse que la carpeta esta compartida y con los permisos necesarios para que la cuenta del sistema SharePoint pueda crear archivos dentro de dicha carpeta.

clip_image004

En caso de requerir exportar los permisos específicos que se tienen entonces elegimos Export Full Security y así mismo elegimos el esquema de versiones que deseamos exportar, el exportador se puede llevar todas las versiones de un documento. Estas opciones son las mismas que especificamos programáticamente cuando utilizamos el modelo de objetos SharePoint para hacer Content Deployment. Damos clic en el botón Star Export.

Esto inicia el proceso de exportación, dependiendo del contenido del sitio o lista que deseas exportar es el tiempo que durara el proceso, este proceso si es un poco lento.

clip_image006

Sin embargo, la misma página constantemente se está refrescando para poder visualizar el estatus del proceso que se está ejecutando.

clip_image008

Una vez que termina el proceso de exportación, tendremos en nuestra carpeta un par de archivos.

clip_image010

El archivo demo.cmp básicamente es el resultado de nuestro proceso de exportación y contiene el contenido e instrucciones necesarias para poder ser importado más adelante. Así mismo, se agrega un archivo en formato texto con la bitácora de exportación. Esta bitácora muestra los elementos que fueron incluidos en la exportación, desde permisos, carpetas, paginas maestras, características. Te recomiendo analizar el archivo pero si tienes prisa lo más importante es validar que no se tengan errores al final del archivo.

clip_image012

Y para montar nuestro respaldo granular debemos de asegurarnos que el sitio o lista que deseamos restaurar sea del mismo tipo de plantilla de sitio de donde se respaldó, en caso de que difiera la plantilla el proceso de restauración generara un error.

Para restaurar el respaldo simplemente cargamos Microsoft SharePoint 2010 Management Shell de PowerShell. Después ejecutamos el siguiente script donde especificamos claramente la ruta del sitio donde estaremos restaurando y la ruta del archivo de respaldo.

clip_image014

El restado del proceso es un archivo de bitácora de importación que nos ofrece información de los elementos aprovionados. De la misma manera hay que validar al final del archivo que no se tenga errores.

clip_image015