Administración de Sharepoint usando PowerShell

Esta guía es para aquellos que ya saben qué es Sharepoint. Básicamente, la guía se centra en la administración de Sharepoint utilizando powershell (PoSH)

Variables :

Estos son simplemente un objeto que contiene algo. Las variables se pueden identificar por un $ anterior, como la variable 'nueva' que sigue:



$ nuevo

Completamos las variables con el signo =. Lo siguiente crea una instancia de un objeto web de SharePoint (llamado objeto SPWeb en la lengua vernácula del Modelo de objetos de servidor):

$ newSPweb = get-spweb http://url.to/my/subsite

Puede nombrar sus variables prácticamente como quiera, aunque hay reglas; busque en Google si tiene curiosidad, ya que las convenciones de nomenclatura de objetos .Net están ligeramente fuera del alcance de este documento.

El modelo de objetos de SharePoint Server :

Esto es lo que hace que la administración de SharePoint en la línea de comandos sea mucho más fácil y divertida que la GUI. Sin embargo, tiene algunos requisitos; principalmente, se le debe otorgar el privilegio SPShellAdmin sobre cada base de datos en la que desee realizar operaciones.

Si se encuentra en una pantalla de PowerShell normal, puede agregar el ensamblado de SharePoint escribiendo lo siguiente:

Agregar pssnapin Microsoft.sharepoint.powershell

Si no tiene SPShellAdmin, probablemente recibirá un error que indica que la granja no está disponible….

El siguiente es un comando que ejecuto con una de nuestras cuentas de servicio Farm Admin cada vez que encuentro que mi cuenta no tiene SPShellAdmin (tenemos alrededor de 20 granjas diferentes en el trabajo).

Solo una nota: este comando debe ejecutarse con una cuenta que ya tenga SPShellAdmin; también debe ejecutarse con la aplicación SharePoint Management Shell con privilegios administrativos / elevados:

$ spdb = get-spdatabase
$ nombre de usuario = 'dominio miusuario'
Foreach ($ _ en $ spdb) {add-spshelladmin –database $ _. Id –username $ username}

Lo que hace este comando es que toma TODOS los nombres de la base de datos de las bases de datos actuales de SharePoint y los almacena en esa variable $ spdb y también dice que dentro del ciclo, se abordarán individualmente mediante la variable $ _.

La variable $ username es el nombre de usuario para el que desea obtener el privilegio SPShellAdmin. El bucle ForEach dice que, para cada elemento ubicado en la variable $ spdb (que es cada una de las bases de datos, puede verlo simplemente escribiendo get-spdatabase), el comando entre {} debe ejecutarse. Dentro de {}, verá el $ _. Id; lo que esto significa es que el ID del elemento de base de datos en particular (GUID) debe usarse con el parámetro –database y su nombre de usuario en el parámetro –username.

Suponiendo que todo salió bien, se le presentará mi salida favorita de absolutamente nada. Esto cuenta como una de esas situaciones en las que 'no hay noticias son buenas noticias'.

Hacia adelante ….

Ahora que tenemos autorización para estar aquí, cierre sesión en su cuenta de servicio e inicie sesión con su cuenta habitual.

Una vez que haya vuelto, abra una ventana PoSH antigua normal y agregue el ensamblado de SharePoint:

Agregar pssnapin Microsoft.sharepoint.powershell

A continuación, escriba

Get-SPWebApplication

para ver todas las aplicaciones web de su granja.
Pongamos uno en una variable:

$ SPWebApp = get-spwebapplication http: // urlToMyWebApp
$ SPWebApp | get-member

Debería ver una lista gigante de cosas en su pantalla ahora: estos son todos los objetos miembros que están disponibles a través del Modelo de objetos para que pueda jugar con ellos.

$ SPWebApp.sites | seleccione rootweb, url

Ahora debería ver una lista de todas las colecciones de sitios que creó anteriormente en su aplicación web.

Juega con get-member y selecciona usando el | …. Esa línea vertical se llama Pipe: es la forma en que puede pasar objetos de un comando a otro.

También puede intentar presionar el botón TAB en un comando parcialmente terminado para ver qué sucede (esto se llama Tab-Completion y es, con mucho, mi parte favorita de las interfaces de línea de comandos modernas).

3 minutos de lectura