domingo, 12 de octubre de 2014

Una breve introducción sobre la arquitectura de SharePoint Server

SharePoint desde su versión 2010 consta de 3 capas; Presentación (Front-End), Aplicación (Application Server) y Base de Datos (Back End). Los 3 roles son definidos de la siguiente manera:

SharePoint Server 2010 farm:Add a server

Base de Datos (Back End): Este es exclusivo para SQL Server y pueden constar de varios servidores de bases de datos aislados (donde almacenamos en cada servidor diferentes bases de datos de SharePoint, por ejemplo;configuración, servicios o contenido) o bien arreglos redundantes como Clustering o Mirroring para alta disponibilidad de este Rol.  Aquí no es necesario instalar los bits de SharePoint, solo SQL Server como aplicación central dentro del servidor.

Aplicación (Application Server): En este servidor se recomienda que este instalado el Central Administration.  Puede disponer de varios servidores aislados los cuales pueden ejecutar diferentes servicios. También puede existir redundancia de servicios (aunque no de todos) en caso sean críticos como la búsqueda, perfiles de usuario, entre otros.  Aquí se requiere tener instalado los bits de SharePoint, es decir requerimos una licencia de SharePoint Server.

Presentación (Front-End): Este servidor primordialmente este diseñado para hospedar las aplicaciones Web que los usuarios consumen al hacer la solicitud en el navegador.  Aquí la redundancia para balancear cargas o para tener alta disponibilidad es un escenario común en granjas de más de 4 servidores.  Aquí no se puede utilizar un servidor para hospedar una aplicación Web y en otro servidor otra, no esta así diseñado SharePoint.  Aquí se requiere tener instalado los bits de SharePoint, es decir requerimos una licencia de SharePoint Server.

Replica de los sitios Web del IIS:  Algo curioso es que cuando creamos la aplicación Web en el servidor Front-End desde el Central Administration o vía PowerShell, el sitio Web en el IIS es replicado en el servidor de aplicación donde esta hospedado el Central Administration, esto lo hace SharePoint para tener una replica del sitio Web creado en el IIS y pueda ser restablecido en otro servidor de Front-End de SharePoint.  Cuando instalamos alguna solución de granja o Farm Solution o componente que utilizará nuestra aplicaciones instaladas en SharePoint es necesario instalarlas en cada servidor de Front-End y Application Server dependiendo de la arquitectura de la solución.

El orden de Instalación:

Base de Datos (Back End): Ya que la configuración, servicios y contenido es almacenado en base de datos, el primer servidor que debemos instalar es el base de datos o Back-End.  Para ello necesitamos la media de SQL Server 2008 R2 con el SP1 como mínimo o superior para la edición Standard de SharePoint Server y para la edición Enterprise de SharePoint debe de ser SQL Server Business Intelligence 2012 o Enterprise. 

Recomendaciones importantes:  Si es una instalación existente de SQL Server deberá crearse una instancia Nueva para ocupar SharePoint y asignar recursos de memoria y procesador a esta para garantizar un nivel de rendimiento en SharePoint.   Recomiendo que si va a ser una instalación nueva se elija SQL Server 2012 Standard si es para las edición Standard de SharePoint Server.

Aplicación (Application Server): El Segundo servidor que debemos de instalar es el de aplicación para una granja de por lo menos 3 servidores.  Si solo son dos pues no aplica los roles de App-Server y Front-End están en uno mismo.   Este servidor es el que va dar a luz la granja de SharePoint en este crearemos la aplicación Web para el Central Administration. 

Luego de instalar los bits de SharePoint, nos preguntará el Asistente de Productos y Tecnologías de SharePoint si deseamos crear una granja nueva o conectarnos a una existente, con lo cual indicaremos que deseamos crear una nueva granja.  Nos solicitará el nombre de la base de datos con lo cual sugiero utilizar un alias de SQL por futuros cambios o restauraciones en caso de falla de servidor de base de datos y la cuenta que será la administradora de la granja de SharePoint denominada común mente como midominio\spfarm.  Luego solicitará el puerto donde lo crearemos sugiero un número fácil de recordar como 5 veces 5 es decir http://hostname:55555

image

Esto creará las primeras dos base de datos SharePoint_Config (donde se guarda la configuración de la granja) y Wss_Content_Admin[id único] (la cual es la base de datos de contenido de la aplicación Web que hospeda el Central Administration).  También nos solicitará la frase de contraseña de la granja esta es importante ya que para adicionar cualquier servidor es necesario esta contraseña.  Recomiendo sea la misma contraseña de la cuenta spfarm para no olvidar cual colocamos. 

Si nuestra granja contará con más de 3 servidores y la redundancia o la distribución de la carga va a ser en este rol, tendremos que instalar los bits de SharePoint en cada uno de los servidores adicionales (y si es una licencia de servidor adicional, lo que no tiene que volver a pagar es las CAL de usuario no importa cuantos servidores tenga una USER CAL es por usuario y no por servidor. 

Presentación (Front-End):

image

Para adicionar un servidor necesitamos instalar los bits de SharePoint y cuando se ejecute el asistente de Productos y Tecnologías de SharePoint, colocar que no es una nueva granja sino que nos vamos a conectar a una existente debemos de colocar el nombre del servidor de base de datos o el alias de SQL (para ello es necesario instalar sql serve express y crear el alias en el servidor que se desea conectar al de base de datos), seleccionamos la base de datos de configuración que muy seguramente es SharePoint_Config, la cuenta administradora de la granja (asumimos que sea midominio\spfarm) y la contraseña. 

Además nos solicitará la frase de contraseña de la granja de SharePoint.

image

Cómo se asignan los roles de Servidor:

En el siguiente enlace http://technet.microsoft.com/es-gt/library/cc261752(v=office.15).aspx hay una nota al final que podemos pasar desapercibidos en el cual indica que “El nuevo servidor no tiene ninguna funcionalidad real en la granja de servidores hasta que se configuran los servicios necesarios para obtener compatibilidad con el rol que ha planeado para el nuevo servidor. Para más información, vea Configuración de servicios y aplicaciones de servicio en SharePoint 2013.”  Esto claramente nos indica que hasta después de adicionar el servidor a la granja y crear el servicio o la aplicación web en el servidor por medio de línea de comando le asignamos el rol según la funcionalidad que le configuremos.

Para crear la aplicación Web explicitamente en el Front End podemos utilizar el siguiente script para ejecutar en PowerShell:

$farmAcct = "midominio\spapp"
$AliasName = "SPSQL"
$webAppName = "SharePoint – Portal "
$appPool = "SharePoint - Portal"
$Contentdatabase = "WSS_Content_Portal"
$url = http://frontendserver
$SiteTemplate = "STS#0" # Basic TeamSite
$port = "80"

New-SPWebApplication -Name $webAppName -ApplicationPool $appPool -ApplicationPoolAccount (Get-SPManagedAccount $farmAcct) -DatabaseServer $AliasName -DatabaseName $Contentdatabase -Url $url -Port $port

Donde la variable $url contiene el valor de la dirección del servidor front-end de SharePoint asignado.

Lo interesante de la granja de SharePonit es que todos los servidores de SharePoint mantienen una copia de las aplicaciones Web  creadas.
          

Una guía para saber donde crear los servicios de aplicación esta en el siguiente enlace:

http://technet.microsoft.com/es-ES/library/jj219591(v=office.15).aspx

Una pequeña muestra del contenido a continuación:

Aplicación de servicio Recomendación de servidor
Servicios de Access Servidor front-end.
Servicios de Access 2010 Servidor front-end.
Servicio de administración de aplicaciones Servidor front-end.
Conectividad a datos empresariales Servidor front-end.
Servicios de Excel Servidor front-end o especializado.
Servicio de traducción automática Servidor de procesamiento por lotes.
Servicio de metadatos administrados Servidor front-end.
Servicio de configuración de suscripción de Microsoft SharePoint Foundation Servidor front-end.
PerformancePoint Servidor de procesamiento por lotes o especializado.
Conversión de PowerPoint Servidor de procesamiento por lotes.
Búsqueda Servidor de procesamiento por lotes o servidores especializados para la búsqueda.
Búsqueda Servidores que ejecutan componentes de búsqueda.
Búsqueda Servidores que ejecutan el procesamiento de consultas.
Búsqueda Servidores que ejecutan componentes de búsqueda.
Servicio de almacenamiento seguro Servidor front-end.
Recolección de datos de uso y estado  
Perfil de usuario Servidor front-end.
Perfil de usuario Servidor de procesamiento por lotes.
Servicio de gráficos de Visio Servidor front-end.
Word Automation Services Servidor de procesamiento por lotes.
Administración del trabajo Servidor de procesamiento por lotes.

Bueno amigos eso es todo por este articulo que dimos un vistazo a la arquitectura lógica de SharePoint 2013.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

sábado, 11 de octubre de 2014

Total de sub-sitios en SharePoint 2013 en una sola línea de comando con PowerShell

A veces necesitamos un comando rápido que nos de algo tan sencillo como el total de sub-sitios en SharePoint data una dirección URL en una sola línea de comando.  Abajo les muestro la línea de comando:

((Get-SPWeb “http://hostname/site1/site2”).Site).AllWebs.count

Eso es todo amigos.   Si desea algo más elaborado y que no requiera el SharePoint Management Shell sino la consola standard de PowerShell puede ser algo como le muestro abajo:

Add-PSSnapin “Microsoft.SharePoint.PowerShell” –ErrorAction SilentlyContinue

$url = Read-Host “Ingrese la URL del sitio padre: ”

((Get-SPWeb $url).Site).AllWebs.count

Eso es todo amigos fácil y rápido.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

lunes, 29 de septiembre de 2014

Script para comparar contenido entre versiones de SharePoint

Para este articulo presentaré un procedimiento y scripts para leer el contenido de SharePoint Server 2007 a nivel de Transac-SQL ya que no contamos con PowerShell para esta versión de forma predeterminada (es posible instarlo, pero en ciertos ambientes por las restricciones dentro de la organización es una complicación).  Y para SharePoint Server 2013 utilizaremos PowerShell . 

La idea es generar un archivo CSV desde SQL Server desde el Management Studio para que basado en este archivo podamos de lado de SharePoint Server 2007 vía PowerShell leer el documento e ir validando por medio del modelo de objetos de SharePoint a nivel de PowerShell si existe dicho contenido y si el contenido es el más reciente.

Select
   Top W.FullUrl, W.Title, L.tp_Title as ListTitle, A.tp_DirName, A.tp_LeafName, A.tp_id , DS.Content , DS.Size, D.DocLibRowID, D.TimeCreated, D.Size, D.MetaInfoTimeLastModified, D.ExtensionForFile
From
   your_content_database.dbo.AllLists L With (NoLock) join
   your_content_database.dbo.AllUserData A With (NoLock)
      On L.tp_ID=tp_ListId join
   your_content_database.dbo.AllDocs D With (NoLock)
      On A.tp_ListID=D.ListID
      And A.tp_SiteID=D.SiteID
      And A.tp_DirName=D.DirName
      And A.tp_LeafName=D.LeafName join
   your_content_database.dbo.AllDocStreams DS With (NoLock)
      On DS.SiteID=A.tp_SiteID
      And DS.ParentID=D.ParentID
      And DS.ID=D.ID join
    your_content_database.dbo.Webs W With (NoLock)
      On W.ID=D.WebID
      And W.ID=L.Tp_WebID
      And W.SiteID=A.tp_SiteID
Where
   DS.DeleteTransactionID=0
   And D.DeleteTransactionID=0
   And D.IsCurrentVersion=1
   And A.tp_DeleteTransactionID=0
   And A.tp_IsCurrentVersion=1
   And D.HasStream=1
   And L.tp_DeleteTransactionId=0
   And ExtensionForFile not in ('webpart','dwp','aspx','xsn','master','rules','xoml')
   And D.MetaInfoTimeLastModified>DateAdd(d,-1,GetDate())
Order by DS.Size desc

Referencia donde lo saque:

http://stackoverflow.com/questions/213801/sharepoint-2007-sql-query-to-find-a-list-of-documents-in-site-collection

El formato a generar el archivo csv elegí que fuera el siguiente:

url,list,document,fullurl,created,modified

Entonces la versión original de arriba la modificamos de la siguiente forma:

 

Select
   Top W.FullUrl, L.tp_Title as ListTitle, A.tp_LeafName, A.tp_DirName, D.TimeCreated,D.MetaInfoTimeLastModified
From
   your_content_database.dbo.AllLists L With (NoLock) join
   your_content_database.dbo.AllUserData A With (NoLock)
      On L.tp_ID=tp_ListId join
   your_content_database.dbo.AllDocs D With (NoLock)
      On A.tp_ListID=D.ListID
      And A.tp_SiteID=D.SiteID
      And A.tp_DirName=D.DirName
      And A.tp_LeafName=D.LeafName join
   your_content_database.dbo.AllDocStreams DS With (NoLock)
      On DS.SiteID=A.tp_SiteID
      And DS.ParentID=D.ParentID
      And DS.ID=D.ID join
    your_content_database.dbo.Webs W With (NoLock)
      On W.ID=D.WebID
      And W.ID=L.Tp_WebID
      And W.SiteID=A.tp_SiteID
Where
   DS.DeleteTransactionID=0
   And D.DeleteTransactionID=0
   And D.IsCurrentVersion=1
   And A.tp_DeleteTransactionID=0
   And A.tp_IsCurrentVersion=1
   And D.HasStream=1
   And L.tp_DeleteTransactionId=0
   And ExtensionForFile not in ('webpart','dwp','aspx','xsn','master','rules','xoml')
   And D.MetaInfoTimeLastModified>DateAdd(d,-1,GetDate())
Order by DS.Size desc

El Script de mi autoría para SharePoint 2013 es el siguiente:

$filename = "ModificadoApartirDel20Sep2014_RRHH"
$importedFile = "E:\migracion\Cambios\"+$filename+".csv"
$contents = Import-Csv -LiteralPath $importedFile    
$outfile = "e:\migracion\Cambios\"+$filename+"_log.csv"
$linea = "Estado,url,Creado Origen,Creado Destino,Modificado Origen,Modificado Destino"
add-content $outfile $linea

foreach ($row in $contents) {
    #write-host $row.url $row.list $row.document
    #write-host  $row.document $row.created $row.modified
    # Web URL
    $hostname = https://hostname/
    $urlWeb = $hostname + $row.url
        $web = Get-SPWeb -Identity $urlweb
    # SPList name
    $listname = $row.list
    $list = $web.Lists[$listname]
        $items = $list.Items
    $encontrado = $false
    #foreach($field in $list.fields)
    #{
    #    write-host "Field: " $field.Title
    #}
    $linea = ""   
    foreach($item in $items){
        if($item.Name -eq $row.document)
        {
            if($item["Created"] -gt $row.created -or $item["Modified"] -gt $row.modified){
            $encontrado = $true
            $linea = "Sin Actualizar," +$hostname +$row.fullurl+ "/" +$item.Name+","+$rowcreado+","+$itemcreado+","+$rowmodificado+","+$itemmodificado 
            add-content $outfile $linea   
           
            }else {
            $linea =  "Actualizado," +$hostname +$row.fullurl+ "/"+ $item.Name+","+$rowcreado+","+$itemcreado+","+$rowmodificado+","+$itemmodificado
            add-content $outfile $linea
            }
            break
        }
    }
    if ($encontrado){
        $linea = "No Encontrado,"+$hostname + $row.fullurl+ "/" +$row.document+","+$rowcreado+","+$itemcreado+","+$rowmodificado+","+$itemmodificado
        add-content $outfile $linea
    }
}

 

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

miércoles, 24 de septiembre de 2014

Error al adicionar un servidor a la granja de SharePoint 2013

Cuando adicionamos un servidor a una granja de SharePoint Existente, necesitamos instalar SharePoint en la misma edición, lenguaje y versión que están los servidores de SharePoint.

Con un cliente nos paso que la versión de SharePoint era anterior a la media que nos dieron para instalar y al momento de conectar el nuevo servidor nos indicó que era una versión anterior la existente.  Por lo que decidimos descargar una media con la versión original y allí nos mostró el siguiente error:

image

Al revisar el visor de eventos encontramos un evento de erro con mayor detalle

Log Name:      Application
Source:        Microsoft-SharePoint Products-SharePoint Foundation
Date:          9/18/2014 12:04:39 PM
Event ID:      5617
Task Category: Topología
Level:         Error
Keywords:     
User:          DOMINIO\spadmin
Computer:      SHAREPONT.DOMINIO.COM
Description:
El objeto de SharePoint [SPConfigurationDatabase] está en un estado no admitido. El conjunto de servidores actual no ha podido usarlo.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-SharePoint Products-SharePoint Foundation" Guid="{6FB7E0CD-52E7-47DD-997A-241563931FC2}" />
    <EventID>5617</EventID>
    <Version>15</Version>
    <Level>2</Level>
    <Task>13</Task>
    <Opcode>0</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="2014-09-18T18:04:39.751087400Z" />
    <EventRecordID>6414</EventRecordID>
    <Correlation />
    <Execution ProcessID="4056" ThreadID="3664" />
    <Channel>Application</Channel>
    <Computer>SHAREPOINT.DOMINI.COM</Computer>
    <Security UserID="S-1-5-21-57989841-920026266-725345543-28202" />
  </System>
  <EventData>
    <Data Name="string0">El objeto de SharePoint [SPConfigurationDatabase] está en un estado no admitido. El conjunto de servidores actual no ha podido usarlo. </Data>
  </EventData>
</Event>

Este error me dio una luz del problema entonces, para confirmar lo evidente revise la versión del archivo Microsoft.SharePoint.Portal.DLL ubicado en C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI del nuevo servidor para validar la versión y me indico que era una versión RTM 15.0.4420.1017 y al revisar la versión de la granja existente me mostró la versión actual de la granja.

image

La versión 15.0.4481.1005 equivale a la actualización de Marzo 2013, por lo que es anterior al SP1 pero posterior a la versión RTM.  Entonces deberemos descargar la actualización de Marzo 2013 para empatar la granja con el nuevo servidor.

Un buen enlace de las versiones y donde descargarlas a continuación:

http://blogs.msdn.com/b/erica/archive/2013/05/30/sharepoint-server-2013-version-reference.aspx

Descripción de la actualización de Marzo 2013 para SharePoint Server 2013

http://support.microsoft.com/kb/2767999

Descripción de la actualización de Marzo 2013 para SharePoint Foundation 2013

http://support.microsoft.com/kb/2768000/es

En este caso hay dos idiomas instalados; Español e inglés.  Deberemos ser “muy cuidadosos” en solo actualizar lo que se nos pide de otro modo no será exitosa la adición del servidor a la granja de SharePoint.

image

Luego de instalado el Language Pack requerido (Inglés en nuestro caso) ya pasa a la siguiente paso, el cual es ingresar las credenciales de la granja de SharePoint.

image

Si olvido la frase de granja en el servidor donde esta el Central Administration puede ejecutar las siguientes líneas:

Abra el SharePoint 2010 Management Shell y en la ventana de comando ejecute las siguientes líneas:

         $passphrase = ConvertTo-SecureString -asPlainText -Force
         Set-SPPassPhrase -PassPhrase $passphrase -Confirm

Luego le mostrará la siguiente ventana de finalización del asistente para iniciar le proceso de configuración

image

Cuando Termine deberá mostrarle la siguiente ventana:

image

Listo el servidor esta pegado a la granja y ahora podemos utilizar el Central Administration y PowerShell para configurar el servidor o distribuir los servicios.  Dependiendo del servicio que deseemos habilitar así sera las opciones que debemos de elegir algunas a nivel del Central Administration otras configurandolas por medio de Power Shell.

SharePoint4Fun,

Juan Manuel Herrera Ocheita

martes, 23 de septiembre de 2014

Tip del día: Script para colocar las bases de datos de SharePoint read only

Esto es útil cuando se esta migrando para garantizar que el ultimo cambio permitido esta en el respaldo de la base de datos antes de migrarlo.

Esto se hace a nivel de comando T-SQL de SQL Server y lo que hace SharePoint es que deshabilita las opciones en los menús para editar documentos e inclusive para ingresar a los “Settings” de SharePoint.   Aunque se le puede entrar a nivel de URL de la siguiente forma: http://hostname/_layouts/settings.aspx.

ALTER DATABASE [WSS_CONTENT_????] SET READ_WRITE WITH ROLLBACK IMMEDIATE

Donde [WSS_CONTENT_????] es el nombre de la base de datos de contenido a colocar de modo solo lectura.

WITH ROLLBACK IMMEDIATE bota todas las conexiones hacia la base de datos y ejecuta la modificación a la base de datos a modo lectura, que es lo que deseamos que suceda.

Para devolver la base de datos de contenido de SharePoint a su estado normal es el siguiente comando:

ALTER DATABASE [WSS_CONTENT_????] SET READ_WRITE WITH NO_WAIT

Y eso es todo gracias a PINAL DAVE por su contribución en la nube. Ref: http://blog.sqlauthority.com/2011/04/16/sql-server-making-database-to-read-only-changing-database-to-readwrite/

Así que amigos cuando necesitemos asegurarnos que nadie pero nadie puede modificar el contenido de la base de datos en modo de solo lectura.

SharePoint4Fun,

Juan Manuel Herrera Ocheita

martes, 29 de julio de 2014

Creando una aplicación web con host header en SharePoint 2013

Antes de crear cualquier aplicación Web dentro de SharePoint para manejo de contenido es recomendado planificar como vamos a organizar el contenido. Una buena guía para ello es el plan de gobernabilidad de SharePoint.  Puede iniciar leyendo el siguiente enlace: http://technet.microsoft.com/es-gt/library/ff598584(v=office.15).aspx

Un modelo sugerido para las colecciones de sitios

A veces encuentro aplicaciones web dentro de instalaciones no planficadas con puertos raros 4534 y 3452, etc.   Y esto se debe al desconocimiento del uso de Host header que nos permite utilizar el mismo puerto 80 para diferentes aplicaciones Web.  

Abajo de SharePoint tenemos el IIS que es el Servidor Web y cuando creamos una aplicación Web en SharePoint.  SharePoint crea un Sitio Web en el IIS entonces, como diferencia el IIS a que aplicación esta solicitando el usuario si utiliza el mismo puerto 80.  Bueno a través de los Host Header habrán varios sitios Web a nivel del IIS escuchando sobre el puerto 80 pero con diferente nombre ese el el host header.

En este ejemplo ya tenemos una aplicación Web creada en el puerto 80 mysite.Infocloud.com y ahora vamos a crear otra aplicación Web en el puerto 80 llamada sharepoint.infocloud.com.

Ahora para que el navegador, el IIS y SharePoint puedan resolver este nombre necesitamos ayuda de nuestro amigo el DNS Server.  Allí debemos de registrar el nombre sharepoint.infocloud.com para que el navegador de los usuarios dentro de la red y el servidor de SharePoint donde esta el IIS puedan resolver el nombre.

Paso 1:

Debemos entonces registrar en el DNS Server el nombre sharepoint.  Con una cuenta administradora de dominio podemos accesar al servidor DNS de la organización y crear un nuevo registro Host AAAA

image

image

image

Ahora desde el servidor de SharePoint probamos el nombre para ver si nos responde:

PS C:\Users\spadmin> ping sharepoint

Pinging sharepoint.INFOCLOUD.COM [212.117.213.8] with 32 bytes of data:
Reply from 212.117.213.8: bytes=32 time<1ms TTL=128
Reply from 212.117.213.8: bytes=32 time<1ms TTL=128
Reply from 212.117.213.8: bytes=32 time<1ms TTL=128
Reply from 212.117.213.8: bytes=32 time<1ms TTL=128

Ping statistics for 212.117.213.8:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
PS C:\Users\spadmin>

Listo ahora vamos a crear la aplicación Web desde SharePoint a través del CA.  Luego Application Management y luego Manage web applications.

image

Allí presionamos el botón New.  Se levantará una ventana de dialogo allí cambiamos el puerto por el 80, luego en Host header escribimos el FQDN que recién registramos, es decir: sharepoint.infocloud.com

image

Bueno y la parte de autenticación se la dejamos en NTLM standard Windows para autenticar y nos enfocamos en el grupo de aplicaciones para el IIS, sugiero sea separada a las otras y utilicemos una cuenta de dominio que no sea adminsitradora local sino solo una cuenta sin privilegios en mi caso SPWebApp.  Nombramos la base de datos por ejemplo: WSS_Content_PortalPrimario (Esto para mantener el estándar que dice que debemos colocar el prefijo WSS_Content_ para las bases de datos de contenido de SharePoint).

image

Presionamos el botón OK para que inicie la creación del sitio Web en el IIS y lo deje registrado en la base de datos de Configuración de la granja SharePoint_Config.

image

Listo cuando finaliza con éxito mostrará la siguiente imagen.

image

Y para que podamos acceder a ella necesitamos crear la estructura lógica para que tenga por lo menos una página destino donde dirigirse para atender las solicitudes de los usuarios.  Para ello presionamos la opción “Create Site Collection”, en vez de presionar el botón OK.

image

Ingresamos un título, la plantilla que para este ejemplo Team Site esta bien, porque tiene elementos básicos como Biblioteca, noticias y tareas.

Bueno para finalizar colocamos los administradores de la colección de sitios y listo podemos presionar el botón OK

image

Cuando termina recibiremos este mensaje.

image

Ahora si hacemos clic sobre el enlace ingresaremos al sitio con la dirección sharepoint.infocloud.com.  Si nos pide repetidas veces la clave es problema del Loopback que valida que si no es el nombre del hostname y tiene la misma ip no admite la dirección en el navegador desde el servidor.  Para deshabilitar esto en el registro de windows podemos hacerlo vía PowerShell, escribiendo la siguiente línea:

Windows PowerShell
Copyright (C) 2012 Microsoft Corporation. All rights reserved.

PS C:\Users\spadmin> New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck" -value "1"
-PropertyType dword


DisableLoopbackCheck : 1
PSPath               : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa
PSParentPath         : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control
PSChildName          : Lsa
PSDrive              : HKLM
PSProvider           : Microsoft.PowerShell.Core\Registry

Listo intentamos de nuevo y listo ya funciona.

image[59]

Si revisamos el IIS, encontraremos dos Sitios Web que escuchan en el puerto 80 pero con diferente host header

image

Listo, hemos completado nuestra misión que era tener dos aplicaciones Web escuchando sobre el puerto 80.

Por los que preguntan y la otra aplicación Web como la accedemos… bueno luego de configurar el servicio de Perfiles de Usuario, puedes en la parte superior derecha donde aparece el login del usuario conectado acceder a esta aplicación Web como lo muestro en la imagen de abajo.

image

Bueno eso es todo por este artículo.  No olvide leer el documento Plan de Gobierno de SharePoint 2013.

SharePoint4Fun!,

Juan Manuel Herrera

lunes, 28 de julio de 2014

Cómo cambiar la cuenta administradora de la granja de SharePoint

Pueda que necesitemos cambiar la cuenta administradora de la granja de SharePoint por muchas razones, pero cómo hacerlo?.

Bueno a continuación detallo el procedimiento.

Desde la Administración Central hacemos lo siguiente:

1) Hacemos clic sobre Security

2) Luego hacemos clic sobre “Manage the farm administrators group”

3) Luego presionamos el botón New y agregamos la cuenta de dominio a reemplazar.

image

4) Luego otra vez clic sobre Security

5) Luego clic sobre “Configure service accounts“ y seleccionamos Farm Account y seleccionamos la nueva cuenta y presionamos el botón OK.

image

6) Por ultimo debes de asignar permisos a las bases de datos que tenía la cuenta anterior con la nueva.

Puedes hacerlo revisando desde el Management Studio el usuario que bases de datos tiene mapeada o bien vía algún Script de T-SQL que de liste y asigne de una vez los permisos.  Eso lo dejo en sus manos amigos lectores.

Validaciones manuales:

Puedes validar que la cuenta SPFarm o como le hallas nombrado este en los siguientes grupos y/o objetos.

SPFarm debe de pertenecer a los siguientes grupos locales del servidor de Windows donde esta instalado SharePoint:

Local Adminsitrators

WSS_WPG

WSS_ADMIN_WPG

Que este ejecutando los siguientes servicios de Windows

image

A nivel de SQL Server debe de tener los siguientes roles

image

Y mapeada todas las bases de datos de Aplicación de Servicios y la configuración de la granja y el Central Administration.

image

SharePoint4Fun!,

Juan Manuel Herrera Ocheita