Una de las buenas practicas para cuando iniciamos una solución en SharePoint no importa la versión es crear una colección de sitios para dicha solución y esta con su bases de datos de contenido, Esto permitirá que sea portable la solución desarrollada.
Para realizar esto debemos hacer lo siguiente:
1) Crear la base de datos de contenido
2) Crear la colección de sitios para la base de datos nueva
Como buen desarrollador prefiero utilizar la línea de comando que la interfaz de usuario. Así que aquí les va en línea de comando:
Crear la base de datos de contenido
PS C:\Users\Administrator> Mount-SPContentDatabase -Name WSS_Content_ArchivoDigi
tal -WebApplication http://sp2013bi
---resultado ----
Id : 47b71298-e23c-421b-bb6a-5e65428b8a4d
Name : WSS_Content_ArchivoDigital
WebApplication : SPWebApplication Name=SharePoint - 80
Server : sp2013bi\powerpivot
CurrentSiteCount : 0
Crear la colección de sitios para la base de datos nueva
PS C:\Users\Administrator> New-SPSite -Url http://sp2013bi/sites/ADigital -Langu
age 1033 -Template STS#0 -Name "Archivo Digital" -OwnerAlias "Administrator" -Co
ntentDatabase WSS_Content_ArchivoDigital -Verbose
---resultado---
VERBOSE: Leaving BeginProcessing Method of New-SPSite.
VERBOSE: Performing operation "New-SPSite" on Target
"http://sp2013bi/sites/ADigital".
Url CompatibilityLevel
--- ------------------
http://sp2013bi/sites/ADigital 15
VERBOSE: Leaving ProcessRecord Method of New-SPSite.
VERBOSE: Leaving EndProcessing Method of New-SPSite.
Ayudas:
Para revisar las plantillas para la colección de sitios ejecutar el comando:
get-SPWebTemplate
Name Title LocaleId Compat
ibilit
yLevel
---- ----- -------- ------
GLOBAL#0 Global template 1033 15
STS#0 Team Site 1033 15
STS#1 Blank Site 1033 15
STS#2 Document Workspace 1033 15
MPS#0 Basic Meeting Workspace 1033 15
MPS#1 Blank Meeting Workspace 1033 15
MPS#2 Decision Meeting Workspace 1033 15
MPS#3 Social Meeting Workspace 1033 15
MPS#4 Multipage Meeting Workspace 1033 15
CENTRALADMIN#0 Central Admin Site 1033 15
WIKI#0 Wiki Site 1033 15
BLOG#0 Blog 1033 15
SGS#0 Group Work Site 1033 15
TENANTADMIN#0 Tenant Admin Site 1033 15
APP#0 App Template 1033 15
APPCATALOG#0 App Catalog Site 1033 15
ACCSRV#0 Access Services Site 1033 15
ACCSVC#0 Access Services Site Internal 1033 15
ACCSVC#1 Access Services Site 1033 15
BDR#0 Document Center 1033 15
DEV#0 Developer Site 1033 15
DOCMARKETPLACESITE#0 Academic Library 1033 15
EDISC#0 eDiscovery Center 1033 15
EDISC#1 eDiscovery Case 1033 15
OFFILE#0 (obsolete) Records Center 1033 15
OFFILE#1 Records Center 1033 15
OSRV#0 Shared Services Administration Site 1033 15
PPSMASite#0 PerformancePoint 1033 15
BICenterSite#0 Business Intelligence Center 1033 15
SPS#0 SharePoint Portal Server Site 1033 15
SPSPERS#0 SharePoint Portal Server Personal Space 1033 15
SPSPERS#2 Storage And Social SharePoint Portal ... 1033 15
SPSPERS#3 Storage Only SharePoint Portal Server... 1033 15
SPSPERS#4 Social Only SharePoint Portal Server ... 1033 15
SPSPERS#5 Empty SharePoint Portal Server Person... 1033 15
SPSMSITE#0 Personalization Site 1033 15
SPSTOC#0 Contents area Template 1033 15
SPSTOPIC#0 Topic area template 1033 15
SPSNEWS#0 News Site 1033 15
CMSPUBLISHING#0 Publishing Site 1033 15
BLANKINTERNET#0 Publishing Site 1033 15
BLANKINTERNET#1 Press Releases Site 1033 15
BLANKINTERNET#2 Publishing Site with Workflow 1033 15
SPSNHOME#0 News Site 1033 15
SPSSITES#0 Site Directory 1033 15
SPSCOMMU#0 Community area template 1033 15
SPSREPORTCENTER#0 Report Center 1033 15
SPSPORTAL#0 Collaboration Portal 1033 15
SRCHCEN#0 Enterprise Search Center 1033 15
PROFILES#0 Profiles 1033 15
BLANKINTERNETCONT... Publishing Portal 1033 15
SPSMSITEHOST#0 My Site Host 1033 15
ENTERWIKI#0 Enterprise Wiki 1033 15
PROJECTSITE#0 Project Site 1033 15
PRODUCTCATALOG#0 Product Catalog 1033 15
COMMUNITY#0 Community Site 1033 15
COMMUNITYPORTAL#0 Community Portal 1033 15
SRCHCENTERLITE#0 Basic Search Center 1033 15
SRCHCENTERLITE#1 Basic Search Center 1033 15
visprus#0 Visio Process Repository 1033 15
GLOBAL#0 Global template 1033 14
STS#0 Team Site 1033 14
STS#1 Blank Site 1033 14
STS#2 Document Workspace 1033 14
MPS#0 Basic Meeting Workspace 1033 14
MPS#1 Blank Meeting Workspace 1033 14
MPS#2 Decision Meeting Workspace 1033 14
MPS#3 Social Meeting Workspace 1033 14
MPS#4 Multipage Meeting Workspace 1033 14
CENTRALADMIN#0 Central Admin Site 1033 14
WIKI#0 Wiki Site 1033 14
BLOG#0 Blog 1033 14
SGS#0 Group Work Site 1033 14
TENANTADMIN#0 Tenant Admin Site 1033 14
ACCSRV#0 Access Services Site 1033 14
ACCSRV#1 Assets Web Database 1033 14
ACCSRV#3 Charitable Contributions Web Database 1033 14
ACCSRV#4 Contacts Web Database 1033 14
ACCSRV#6 Issues Web Database 1033 14
ACCSRV#5 Projects Web Database 1033 14
BDR#0 Document Center 1033 14
OFFILE#0 (obsolete) Records Center 1033 14
OFFILE#1 Records Center 1033 14
OSRV#0 Shared Services Administration Site 1033 14
PPSMASite#0 PerformancePoint 1033 14
BICenterSite#0 Business Intelligence Center 1033 14
SPS#0 SharePoint Portal Server Site 1033 14
SPSPERS#0 SharePoint Portal Server Personal Space 1033 14
SPSMSITE#0 Personalization Site 1033 14
SPSTOC#0 Contents area Template 1033 14
SPSTOPIC#0 Topic area template 1033 14
SPSNEWS#0 News Site 1033 14
CMSPUBLISHING#0 Publishing Site 1033 14
BLANKINTERNET#0 Publishing Site 1033 14
BLANKINTERNET#1 Press Releases Site 1033 14
BLANKINTERNET#2 Publishing Site with Workflow 1033 14
SPSNHOME#0 News Site 1033 14
SPSSITES#0 Site Directory 1033 14
SPSCOMMU#0 Community area template 1033 14
SPSREPORTCENTER#0 Report Center 1033 14
SPSPORTAL#0 Collaboration Portal 1033 14
SRCHCEN#0 Enterprise Search Center 1033 14
PROFILES#0 Profiles 1033 14
BLANKINTERNETCONT... Publishing Portal 1033 14
SPSMSITEHOST#0 My Site Host 1033 14
ENTERWIKI#0 Enterprise Wiki 1033 14
SRCHCENTERLITE#0 Basic Search Center 1033 14
SRCHCENTERLITE#1 Basic Search Center 1033 14
SRCHCENTERFAST#0 FAST Search Center 1033 14
visprus#0 Visio Process Repository 1033 14
SharePoint4fun!,
Juan Manuel Herrera O.
Micro publicaciones guía para Power Apps, Power Automate, SharePoint y ademas algunos temas de Azure Dev Ops, Desarrollo Web, SQL Server, Asp.net.
Mostrando las entradas con la etiqueta PowerShell para SharePoint 2016. Mostrar todas las entradas
Mostrando las entradas con la etiqueta PowerShell para SharePoint 2016. Mostrar todas las entradas
martes, 8 de agosto de 2017
Buenas practicas para desarrollo de soluciones en SharePoint
Etiquetas:
PowerShell para SharePoint 2010,
PowerShell para SharePoint 2013,
PowerShell para SharePoint 2016,
SharePoint
lunes, 9 de enero de 2017
Una línea de comando de PowerShell sencilla pero poderosa en su contenido SharePoint 2010,2013,2016
Distribuir contenido es de vital importancia, pero cuando son muchas las bases de datos y colecciones de sitios creadas al restaurar una granja se complica saber donde esta la colección de sitios, por lo que es importanet que contenmos con un listado de las aplicaciones web, sus colecciones y base de datos de contenido.
Cuando creamos de cero una granja y deseamos montar manualmente las base de datos de contenido, es importante saber cual es la base de datos de contenido que tiene la colección de sitios primaria ya que esta debe de restaurarse de primera instancia.
También es importante cuando el contenido esta distribuído que base de datos de contendio tiene la colección de sitios que deseamos restaurar.
El comando deberá ejecutarse desde un servidor de SharePoint desde SharePoint Management Shell. Y la línea de comando es la siguiente:
Get-spsite -Limit all | select url, webapplication, contentdatabase | Export-Csv e:\infoware\listados\ColeccionesSitios.csv -NoTypeInformation
En este ejemplo ficticio vemos que la base de datos de contenido primaria se llama WSS_Content.
Esta será la primera que debemos de montar a través del comando
mount-SPContentDatabase -Name Wss_Content -url http://miportal
Para más información sobre el comando puede utilizar la siguiente línea de comando:
get-help mount-SPContentDatabase -full
Eso esto por este artículo.
SharePoint4Fun!,
Juan Manuel Herrera Ocheita
Cuando creamos de cero una granja y deseamos montar manualmente las base de datos de contenido, es importante saber cual es la base de datos de contenido que tiene la colección de sitios primaria ya que esta debe de restaurarse de primera instancia.
También es importante cuando el contenido esta distribuído que base de datos de contendio tiene la colección de sitios que deseamos restaurar.
El comando deberá ejecutarse desde un servidor de SharePoint desde SharePoint Management Shell. Y la línea de comando es la siguiente:
Get-spsite -Limit all | select url, webapplication, contentdatabase | Export-Csv e:\infoware\listados\ColeccionesSitios.csv -NoTypeInformation
Url | WebApplication | ContentDatabase |
http://miportal | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content |
http://miportal/logistica | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_DataCross |
http://miportal/portales | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_Portales |
http://miportal/sites/permisos | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_Search_Center |
http://miportal/sites/apps | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=SharePoint_OC |
http://miportal/sites/capacitacion | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=SharePoint_OC |
http://miportal/sites/inversiones | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_Inversiones |
http://miportal/sites/seguridad | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content |
http://miportal/sites/Proyectos | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_ProyectosIT |
http://miportal/sites/prueba_EC | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_Esthela_Prueba |
http://miportal/sites/search | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_Search_Center |
http://miportal/sites/sharedspace | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_SharedSpace |
http://miportal/sites/temp | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content |
http://miportal/sites/temporal | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_ProyectosIT |
http://miportal/sitios/rrhh | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=SharePoint_OC |
http://miportal/sitios/prueba3 | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_Esthela_Prueba |
http://miportal/sitios/test | SPWebApplication Name=SharePoint - 80 | SPContentDatabase Name=WSS_Content_Portales |
http://miportal:21387/sites/prueba | SPWebApplication Name=Aplicacion Prueba | SPContentDatabase Name=WSS_Content_PRUEBA |
http://miportal:21387/sites/prueba2 | SPWebApplication Name=Aplicacion Prueba | SPContentDatabase Name=WSS_Content_PRUEBA |
http://miportal:21387/sites/prueba3 | SPWebApplication Name=Aplicacion Prueba | SPContentDatabase Name=WSS_Content_PRUEBA |
http://miportal:24301/sites/prueba | SPWebApplication Name=Sitio Federado | SPContentDatabase Name=WSS_Content_SITIOFEDERADO |
En este ejemplo ficticio vemos que la base de datos de contenido primaria se llama WSS_Content.
Esta será la primera que debemos de montar a través del comando
mount-SPContentDatabase -Name Wss_Content -url http://miportal
Para más información sobre el comando puede utilizar la siguiente línea de comando:
get-help mount-SPContentDatabase -full
Eso esto por este artículo.
SharePoint4Fun!,
Juan Manuel Herrera Ocheita
Etiquetas:
PowerShell para SharePoint 2010,
PowerShell para SharePoint 2013,
PowerShell para SharePoint 2016,
SharePoint,
SharePoint 2016
lunes, 2 de enero de 2017
Cómo habilitar Distribute Cache en un Servidor Custom Role SharePoint 2016
Distribute Cache es un MinRole en SharePoint 2016. Pero que pasa si no tenemos los servidores requeridos para separar este Rol entonces debemos de habilitarlo en un Custom Role que es diremos la forma tradicional de hacerlo.
No hay una referencia documentada oficial aún para hacerla, pero el sentido común nos puede guiar y es que la forma de habilitarlo vía powershell en SharePoint 2013 debería ser la forma en que podemos habilitarlo en SharePoint 2016 en un Custom Role.
Si deseas saber mas sobre MinRoles puede ser este post que escribí hace algún tiempo:
https://jmhogua.blogspot.com/search?q=minrole
Retornando al tema entonces debemos primero ir al servidor que tiene el Custom Role. Para saber cual es podemos verlo desde el Central Administration, System Settings, Convert server role in this farm.
Luego vemos el rol de cada servidor
Entonces en el servidor con Role Custom este levantamos una instancia de Management Shell for SharePoint 2016 y ejecutamos el comando Add-SPDistributeCacheServiceInstance.
Y eso es todo ya se provisionó el Distribute Cache en ese servidor. Ahora si vemos en el Central Administration los servicios corriendo en ese Servidor nos despliega el servicio.
Y eso es todo.
SharePointFun,
Juan Manuel Herrera Ocheita
No hay una referencia documentada oficial aún para hacerla, pero el sentido común nos puede guiar y es que la forma de habilitarlo vía powershell en SharePoint 2013 debería ser la forma en que podemos habilitarlo en SharePoint 2016 en un Custom Role.
Si deseas saber mas sobre MinRoles puede ser este post que escribí hace algún tiempo:
https://jmhogua.blogspot.com/search?q=minrole
Retornando al tema entonces debemos primero ir al servidor que tiene el Custom Role. Para saber cual es podemos verlo desde el Central Administration, System Settings, Convert server role in this farm.
Luego vemos el rol de cada servidor
Entonces en el servidor con Role Custom este levantamos una instancia de Management Shell for SharePoint 2016 y ejecutamos el comando Add-SPDistributeCacheServiceInstance.
Y eso es todo ya se provisionó el Distribute Cache en ese servidor. Ahora si vemos en el Central Administration los servicios corriendo en ese Servidor nos despliega el servicio.
Y eso es todo.
SharePointFun,
Juan Manuel Herrera Ocheita
domingo, 9 de octubre de 2016
Script poderoso para crear colecciones de sitios y activar features en SharePoint 2016
Creación colecciones de sitios en SharePoint es una buena forma de distribuir el contenido, en especial si por cada colección de sitios creamos una base de datos de contenido por separado. De esta forma la copia de respaldo y la recuperación de las bases de datos de contenido pueden aislarse y administrar por separado.
Aunque este script se ejecutó para SharePoint 2016, muy probablemente funciona para SP2013 y con algunos ajustes en 2010.
El problema
Tenemos 25 colecciones de sitios y debemos crearlas con sus bases de datos de contenido por separado ademas debemos de aplicar un master page personalizada y estilos.
La solución
Hacer este problema vía Central Administration, demoraría mucho tiempo, por lo que se realizará un script en PowerShell para hacer las siguientes acciones:
Utilizaremos dos archivos:
El Formato del archivo CSV
Será el siguiente:
titulo, url, Sufijo
Título: Donde título es el título de la colección de sitios.
Url: Es la dirección url absoluta de la colección de sitios
Sufijo: El sufijo para la base de datos de contenido WSS_Content_[Sufijo]
Por ejemplo el archivo csv se vería así.
<# INICIO ARCHIVO NUEVASCOLECCIONES.CSV #>
titulo,url,Sufijo
RecursosHumanos,http://miportal/sitios/RRHH,RRHH
IT,http://miportal/sitios/IT,IT
<# FIN DE ARCHIVO NUEVASCOLECCIONES,CSV #>
El Script
El Script para crear las colecciones de sitios es el siguiente:
<# Script CreacionColecciones.ps1 inicia aquí #>
#Importacion del contenido del archivo csv
$Colecciones = Import-Csv E:\Infoware\Scripts\ColeccionesNuevas.csv
#url de la WebApplication
$url = "http://miportal"
#recorre cada fila del contenido del archivo CSV
foreach($row in $Colecciones){
Write-Host $row.Url $row.titulo $row.Sufijo
#Construiyendo el nombre de la base de datos de contenido
$Contentdb = "WSS_Content_"+$row.Sufijo
#Creación de la base de datos de contenido para la nueva colección de sitios por crear
New-SPContentDatabase -Name $Contentdb -WebApplication $url
#Creación de la nueva colección de sitios con plantilla de Equipo en la nueva base de datos de contenido
New-SPSite $row.Url -OwnerAlias "DOMINIO\spadmin" -Template "STS#0" -ContentDatabase $Contentdb -Name $row.titulo
#Habilitación del característica de publicación a nivel de colección de sitios
Enable-SPFeature "PublishingSite" -url $row.url
#Habilitación de la caracteristica de publicación a nivel de sitio web primario y subsitios
Get-SPWeb -Site $row.url -Limit all | % {Enable-SPFeature "PublishingWeb" -url $_.url}
#Habilitación de la característica personalizada para aplicar una master page y estilos personalizados
Enable-SPFeature -identity a830970f-9ef1-4712-8b45-f41a746d7fda -URL $row.url
}
Aunque este script se ejecutó para SharePoint 2016, muy probablemente funciona para SP2013 y con algunos ajustes en 2010.
El problema
Tenemos 25 colecciones de sitios y debemos crearlas con sus bases de datos de contenido por separado ademas debemos de aplicar un master page personalizada y estilos.
La solución
Hacer este problema vía Central Administration, demoraría mucho tiempo, por lo que se realizará un script en PowerShell para hacer las siguientes acciones:
- Crear una base de contenido con el nombre corto de la colección de sitios
- Crear una colección de sitios en esta nueva base de datos de contenido
- Habilitar la característica de publicación a nivel de la colección de sitio
- Habilitar la característica de publicación a nivel de sitio primario
- Habilitar la característica de la solución personalizada a nivel de colección de sitios
Utilizaremos dos archivos:
- Archivo CSV que tiene la información de la colección de sitio a crear
- Archivo PS1 que tiene los comandos de PowerShell para SharePoint para crearlas
El Formato del archivo CSV
Será el siguiente:
titulo, url, Sufijo
Título: Donde título es el título de la colección de sitios.
Url: Es la dirección url absoluta de la colección de sitios
Sufijo: El sufijo para la base de datos de contenido WSS_Content_[Sufijo]
Por ejemplo el archivo csv se vería así.
<# INICIO ARCHIVO NUEVASCOLECCIONES.CSV #>
titulo,url,Sufijo
RecursosHumanos,http://miportal/sitios/RRHH,RRHH
IT,http://miportal/sitios/IT,IT
<# FIN DE ARCHIVO NUEVASCOLECCIONES,CSV #>
El Script
El Script para crear las colecciones de sitios es el siguiente:
<# Script CreacionColecciones.ps1 inicia aquí #>
#Importacion del contenido del archivo csv
$Colecciones = Import-Csv E:\Infoware\Scripts\ColeccionesNuevas.csv
#url de la WebApplication
$url = "http://miportal"
#recorre cada fila del contenido del archivo CSV
foreach($row in $Colecciones){
Write-Host $row.Url $row.titulo $row.Sufijo
#Construiyendo el nombre de la base de datos de contenido
$Contentdb = "WSS_Content_"+$row.Sufijo
#Creación de la base de datos de contenido para la nueva colección de sitios por crear
New-SPContentDatabase -Name $Contentdb -WebApplication $url
#Creación de la nueva colección de sitios con plantilla de Equipo en la nueva base de datos de contenido
New-SPSite $row.Url -OwnerAlias "DOMINIO\spadmin" -Template "STS#0" -ContentDatabase $Contentdb -Name $row.titulo
#Habilitación del característica de publicación a nivel de colección de sitios
Enable-SPFeature "PublishingSite" -url $row.url
#Habilitación de la caracteristica de publicación a nivel de sitio web primario y subsitios
Get-SPWeb -Site $row.url -Limit all | % {Enable-SPFeature "PublishingWeb" -url $_.url}
#Habilitación de la característica personalizada para aplicar una master page y estilos personalizados
Enable-SPFeature -identity a830970f-9ef1-4712-8b45-f41a746d7fda -URL $row.url
}
<# FIN DEL ARCHIVO CREARCOLECCIONES.PS1 #>
Eso es todo amigos, los dejo con las referencias bibliográficas del sitio de Technet por si les interesa conocer mas de los comandos ejecutados en este script.
Eso es todo amigos, los dejo con las referencias bibliográficas del sitio de Technet por si les interesa conocer mas de los comandos ejecutados en este script.
New-SPContentDatabase
"MyDatabase" -DatabaseServer "MyServer" -WebApplication http://sitename
New-SPSite
http://www.contoso.com -OwnerAlias "DOMAIN\jdow"
-HostHeaderWebApplication $w -Name "Contoso" -Template
"STS#0"
Get-SPWeb -Site "http://rootWebUrl" -Limit all | % {Enable-SPFeature "PublishingWeb" -url $_.url}
Enable-SPFeature
-identity "MyCustom" -URL http://somesite
SharePoint4Fun!,
Juan Manuel Herrera Ocheita
Etiquetas:
PowerShell para SharePoint 2016,
SharePoint 2016
Suscribirse a:
Entradas (Atom)