Lendo um post no fórum do MSDN com o título Recuperar ID de pasta na Biblioteca usando Web Services fiquei curioso com o problema reportado, que era conseguir consultar uma pasta do SharePoint passando o nome dela e retornando o ID, utilizando o webservice Lists.ASMX.
Este post tem um exemplo de como implementar esta necessidade.
Leia o resto deste post »
O workflow do SharePoint 2010 é muito rico em detalhes que muitas vezes são inexplorados. Um deles é o processo de aprovação, que nos permite customizar a interação do usuário com as tarefas de workflow de uma forma mais rica.
Neste post vou mostrar como editar o e-mail de tarefa atribuída que o workflow envia, mas o conteúdo deste post pode ser utilizado em outras customizações desta atividade.
Como ustedes deben recordar en SharePoint 2010 usted podía utilizar la interfaz gráfica para crear o re configurar su topología de Búsqueda empresarial, utilizando la administración de la aplicación de servicio de Búsqueda. En dicha interfaz gráfica usted puede crear, editar o remover cualquiera de los siguientes componentes:
Y era muy fácil para los administradores utilizar cualquiera de los servidores de la graja y de esta forma configurar la mejor topología de Búsqueda empresarial basados en sus requerimientos de negocio.
Una de las cosas que las personas más me comentan es que utilizar la interfaz gráfica para configurar la topología es realmente fácil, pero si uno comete algún error configurando algún parámetro o tiene algún otro problema en la granja, y al finalizar de configurar la topología empresarial de Búsqueda, y hacer clic en el botón de aplicar los cambios, luego de un buen rato aparece un error y las mayoría de los cambios realizados no se mantienen.
El anterior problema es una buena razón para configurar su topología empresarial de Búsqueda con Power Shell, porque usted tiene toda la flexibilidad de crear y re configurar los componentes, y esto puede ayudar a identificar problemas en su granja o topología antes de que finalice de configurar en su totalidad esta.
También es importante mencionar que algunos administradores de SharePoint le temen administrar SharePoint con Power Shell, por qué piensas que están pasándose al lado de desarrollo y ellos solo quieren ser profesionales de infraestructura. Pero lo que deben saber es que Microsoft está invirtiendo en utilizar Power Shell en la mayoría de sus productos con el fin de ofrecer una sola forma de administrarlos a todos y facilitar y flexibilizar las tareas de infraestructura. Yo espero que este blog ayude a aquellos administradores a quitarse ese concepto de la mente.
Es de saber para las personas que ya están trabajando con SharePoint 2013, que la única vía para configurar la topología de búsqueda es atreves de Power Shell y sus cmdlets disponibles para crear los nuevo y poderosos componentes del nuevo servicio empresarial de Búsqueda de SharePoint 2013.
El propósito de esta entrada de blog es mostrar algunos ejemplos de cómo crear una topología de Búsqueda empresarial en SharePoint 2013, obviamente utilizando Power Shell, pero no solo mencionando que cmdlets utilizar, sino también como podrían automatizar esta labor y así poder repetir estos pasos las veces que sean necesarias y utilizarlos en otras implementaciones de SharePoint 2013, y adicionalmente ayudar a los administradores de SharePoint a perder ese miedo en utilizar Power Shell para administrar SharePoint.
Todos los cmdlets utilizados en esta entrada de blog están basados en el siguiente documento de TechNet:
Manage search components in SharePoint Server 2013
http://technet.microsoft.com/en-us/library/jj862354.aspx
Si usted no ha leído el anterior documento, yo recomiendo que lo haga o lo tome como referencia para la lectura de esta entrada.
A continuación voy a resumir los pasos para crea una nueva topología de Búsqueda en SharePoint 2013, y los cuales son mencionados en el anterior documento:
Como se puede ver existen varios pasos a realizar y por lo tanto varios comandos de Power Shell deben ser ejecutados, por esta razón he creado las siguientes funciones que nos permitirán facilitar la creación de la topología de búsqueda.
GetOrStartSearchServiceInstance
La siguiente función permite identificar si un servidor tiene el servicio de búsqueda indicado, si no es así lo inicia.
function GetOrStartSearchServiceInstance($Server)
{
$startInstance = $false
$serverIns = Get-SPEnterpriseSearchServiceInstance -Identity $Server
if($serverIns -ne $null)
if($serverIns.Status -ne "Online")
$startInstance = $true
}
else
if($startInstance)
$serverIns = Start-SPEnterpriseSearchServiceInstance -Identity $serverIns
return $serverIns
En este caso la forma de llamar esta función será:
GetOrStartSearchServiceInstance -Server “<server name>”
Como pudo ver en el documento de TechNet, para adicionar y remover un componente de búsqueda se utilizan los siguientes cmdlets:
En el caso de New-SPEnterpriseSearch<SearchComponent>Component, si usted entra en detalle a ver que parámetros acepta, es posible para todos los cmdlets proveer 2 parámetros básicos los cuales son la topología y la instancia de servicio (es decir el servidor), es por esto que he creado la siguiente función la cual permite crear cualquiera de los componentes anteriormente mencionados en la cantidad de servidores necesarios.
Set-SPSearchComponents
Esta función necesita los siguientes parámetros:
function Set-SPSearchComponents($ServerType, $ServersStringArray, $Topology)
#Check if is a valid type of search component
$validTypes = ("Admin", "AnalyticsProcessing", "ContentProcessing", "Crawl", "QueryProcessing")
if($validTypes.Contains($ServerType) -ne $true)
throw "ServerType is not valid."
#Check server by server is need to Remove or Add
$ServerType += "Component"
$currentServers = Get-SPEnterpriseSearchComponent -SearchTopology $Topology | ?{$_.GetType().Name -eq $ServerType}
#Remove components
foreach($component in $currentServers)
Remove-SPEnterpriseSearchComponent -Identity $component -SearchTopology $Topology #-Confirm $true
#Add Components
foreach($server in $ServersStringArray.Split(","))
#Check in search service instance is started, otherwise start it
$serIns = GetOrStartSearchServiceInstance -Server $server
switch($ServerType)
"AdminComponent" {New-SPEnterpriseSearchAdminComponent -SearchTopology $newTop -SearchServiceInstance $serIns}
"AnalyticsProcessingComponent" {New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTop -SearchServiceInstance $serIns}
"ContentProcessingComponent" {New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTop -SearchServiceInstance $serIns}
"CrawlComponent" {New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTop -SearchServiceInstance $serIns}
"QueryProcessingComponent" {New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTop -SearchServiceInstance $serIns}
#Show in the output the search components of the topology to see the modificatios made on.
Get-SPEnterpriseSearchComponent -SearchTopology $Topology
Un ejemplo para invocar esta función podria ser el siguiente:
Set-SPSearchComponents -ServerType "AnalyticsProcessing" -ServersStringArray “server1,server3” -Topology $newTop
Finalmente para dar un gran ejemplo de cómo crear totalmente una topología empresarial de Búsqueda en SharePoint 2013, he creado la siguiente función, la cual hace uso de las anteriores.
New-SPSearchTopology
Para usar esta función se deben proveer los siguientes parámetros:
function New-SPSearchTopology($AdminServers, $AnalyticsServers, $ContentServers, $CrawlServers, $QueryServers)
$servers = $AdminServers + "," + $AnalyticsServers + "," + $ContentServers + "," + $CrawlServers + "," + $QueryServers
#Check the existence of the servers
foreach($server in $servers.Split(","))
Get-SPServer $server -ErrorAction Stop
#Initialize variables
$ssa = Get-SPEnterpriseSearchServiceApplication
#Clone search topology
$activeTop = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
$newTop = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone –SearchTopology $activeTop
#Admin component
Set-SPSearchComponents -ServerType "Admin" -ServersStringArray $AdminServers -Topology $newTop
#Analytics servers
Set-SPSearchComponents -ServerType "AnalyticsProcessing" -ServersStringArray $AnalyticsServers -Topology $newTop
#Content
Set-SPSearchComponents -ServerType "ContentProcessing" -ServersStringArray $AnalyticsServers -Topology $newTop
#Crawl
Set-SPSearchComponents -ServerType "Crawl" -ServersStringArray $AnalyticsServers -Topology $newTop
#Query
Set-SPSearchComponents -ServerType "QueryProcessing" -ServersStringArray $AnalyticsServers -Topology $newTop
#Active Topology
Set-SPEnterpriseSearchTopology -Identity $newTop
New-SPSearchTopology –AdminServers “server1,server2” –AnalyticsServers “server1,server3” –ContentServers “server2,server4” –CrawlServers “server5,server6” –QueryServers “server7,server8,server9”
Espero que esta entrada haya sido de ayuda para crear su nueva topología empresarial de Búsqueda en SharePoint 2013, y recuerde que no todas las consideraciones acerca del servicio empresarial de Búsqueda de SharePoint 2013 han sido tomadas en cuenta en este artículo, en el futuro espero escribirles acerca de:
As you may remember in SharePoint 2010 you had a specific user interface to create and reconfigure your enterprise Search topology, in the Search Service applications management. There you can create, edit and remove the following components:
And it was very easy by the administrator to use any server in their farm to configure the best enterprise Search topology for their business requirements.
One thing than many people said to me was that the configuration was very easy with the UI, but if you put something wrong or your farm have any issue, when you finished to reconfigure your enterprise search topology, and you click in the button to apply all the changes, it takes a while and gives you an error and also you lose the majority of the changes that you made before.
The above problem was a good reason to configure your enterprise search topology with Power Shell, because you have the flexibility to create and reconfigure the components one by one, it help you to identify issues in your farm regarding the search service before finish to define your enterprise search topology.
Also some Share Points administrators have afraid to manage SharePoint with Power Shell, because are thinking that are writing scripts so are developing things, and they may be don’t want to be a developers, only IT infrastructure guys. But you must to know that the reason that Microsoft are integrating Power Shell in all our products is to try to standardize the way that you can manage the different services. I hope this blog could help to those SharePoint administrators that have this concept in mind.
Now, for the people that are working with SharePoint 2013, knows that the only way to create or reconfigure your enterprise Search Topology is using the Power Shell cmdlets created for the new and powerful components of the SharePoint 2013 Enterprise Search Service Application.
The propose of this blog entry is to show you some examples to create an enterprise Search topology in SharePoint 2013, also with Power Shell, but not only to tell you the specific cmdlets that you must or can use to do this job, my objective is to try to automatize this work creating scripts that you can use in your different implementations of SharePoint 2013, also this can help the SharePoint administrators to lose their afraid when are using Power Shell to manage SharePoint.
All the cmdlets that I use in this entry are based in the following TechNet document:
If you didn’t read the above document, I recommend to you to do it or take as a reference for the cmdlets that you are going to see here.
I’m going to start to summarize the basics steps that you must to do when you want to create a new Enterprise search topology:
As you can see there are some steps that you must to do and in some cases you must to repeat them, for this reason I created the following power shell functions to help to create our Search topology.
The following function help us to check if the search service instance is started in a specific sever and retrieve the reference to it, or start the service instances in the case that is wasn’t started.
In this case you provide to the function a server name and the function retrieve a search service instance, you must to call it in the following way:
As you can saw in the TechNet document, to add and remove the search component we use the following functions:
In the case of New-SPEnterpriseSearch<SearchComponent>Component, you can dig in deep and see that you can use the same basic parameters: the Search topology and the search service instance, for that reason I created the following function to help create and remove the specific components on a the specific servers.
This functions needs the following parameters:
An example to use this function could be:
Finally to give you a mainly example to create a SharePoint 2013 Enterprise Search Topology, I written the following function using the functions mentioned above.
To use this function must to pass the following parameters:
I hope this post could help you to create your new SharePoint 2013 Enterprise Search Topology, and remember that not all the Enterprise Search considerations are taken on this scripts, in the future I going to write about how to change the following characteristics: