Compartir a través de


Administración de usuarios y grupos de SharePoint con PowerShell

Este artículo afecta tanto a Office 365 Enterprise como a Microsoft 365 Enterprise

Si es un administrador de SharePoint que trabaja con listas grandes de cuentas de usuario o grupos y quiere una manera más fácil de administrarlas, puede usar PowerShell para Microsoft 365.

Antes de empezar, los procedimientos de este artículo requieren que se conecte a SharePoint. Para obtener instrucciones, consulte Conexión a PowerShell de SharePoint.

Obtener una lista de sitios, grupos y usuarios

Antes de empezar a administrar usuarios y grupos, hay que conseguir las listas de los sitios, grupos y usuarios. Después puede usar esta información para trabajar con el ejemplo de este artículo.

Obtenga la lista de los sitios de su inquilino con este comando:

Get-SPOSite

Obtenga la lista de los grupos de su inquilino con este comando:

Get-SPOSite | ForEach {Get-SPOSiteGroup -Site $_.Url} | Format-Table

Obtenga la lista de los usuarios de su inquilino con este comando:

Get-SPOSite | ForEach {Get-SPOUser -Site $_.Url}

Agregar un usuario al grupo de administradores del sitio

Use el Set-SPOUser cmdlet para agregar un usuario a la lista de administradores de sitio en una colección de sitios.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true

Para usar estos comandos, reemplace todo lo que hay entre comillas, incluidos los < caracteres y > , por los nombres correctos.

Por ejemplo, este conjunto de comandos agrega Opal Castillo (nombre de usuario opalc) a la lista de administradores de sitio en la colección de sitios ContosoTest en el inquilino de Contoso:

$tenant = "contoso"
$site = "contosotest"
$user = "opalc"
Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true

Puede copiar y pegar estos comandos en el Bloc de notas, cambiar los valores de variable de $tenant, $site y $user a los valores reales del entorno y, a continuación, pegarlos en la ventana del Shell de administración de SharePoint para ejecutarlos.

Adición de un usuario a otros grupos de colecciones de sitios

En esta tarea, usamos el Add-SPOUser cmdlet para agregar un usuario a un grupo de SharePoint en una colección de sitios.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
$group = "<group name name, such as Auditors>"
Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site

Por ejemplo, vamos a agregar Glen Rife (nombre de usuario glenr) al grupo Auditores de la colección de sitios ContosoTest en el inquilino de contoso:

$tenant = "contoso"
$site = "contosotest"
$user = "glenr"
$group = "Auditors"
Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site

Crear un grupo de colecciones de sitios

Use el New-SPOSiteGroup cmdlet para crear un nuevo grupo de SharePoint y agregarlo a una colección de sitios.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$group = "<group name name, such as Auditors>"
$level = "<permission level, such as View Only>"
New-SPOSiteGroup -Group $group -PermissionLevels $level -Site https://$tenant.sharepoint.com/sites/$site

Las propiedades de grupo, como los niveles de permisos, se pueden actualizar más adelante mediante el Set-SPOSiteGroup cmdlet .

Por ejemplo, vamos a agregar el grupo Auditores con permisos De solo visualización a la colección de sitios contosotest en el inquilino de contoso:

$tenant = "contoso"
$site = "contosotest"
$group = "Auditors"
$level = "View Only"
New-SPOSiteGroup -Group $group -PermissionLevels $level -Site https://$tenant.sharepoint.com/sites/$site

Quitar usuarios de un grupo

A veces, es necesario quitar un usuario de un sitio o incluso de todos los sitios. Tal vez el empleado se mueva de una división a otra o abandone la compañía. Puede hacer esto para un empleado fácilmente en la interfaz de usuario, pero esto no se hace fácilmente cuando tiene que mover una división completa de un sitio a otro.

Sin embargo, al usar el Shell de administración de SharePoint y los archivos CSV, esto es rápido y fácil. En esta tarea, usará Windows PowerShell para quitar un usuario de un grupo de seguridad de colección de sitios. A continuación, se usa un archivo CSV y se quitan muchos usuarios de sitios diferentes.

Usaremos el cmdlet "Remove-SPOUser" para quitar un único usuario de Microsoft 365 de un grupo de colecciones de sitios para que podamos ver la sintaxis de comandos. Este es el aspecto de la sintaxis:

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
$group = "<group name name, such as Auditors>"
Remove-SPOUser -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site -Group $group

Por ejemplo, vamos a quitar a Bobby Overby del grupo auditores de la colección de sitios de la colección de sitios contosotest en el inquilino de contoso:

$tenant = "contoso"
$site = "contosotest"
$user = "bobbyo"
$group = "Auditors"
Remove-SPOUser -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site -Group $group

Supongamos que queríamos quitar a Bobby de todos los grupos en los que está actualmente. Así es como lo haríamos:

$tenant = "contoso"
$user = "bobbyo"
Get-SPOSite | ForEach {Get-SPOSiteGroup –Site $_.Url} | ForEach {Remove-SPOUser -LoginName $user@$tenant.com -Site $_.Url}

Advertencia

Esto es solo un ejemplo. No debe ejecutar este comando a menos que realmente tenga que quitar un usuario de cada grupo, por ejemplo, si el usuario deja la empresa.

Automatizar la administración de grandes listas de usuarios y grupos

Para agregar un gran número de cuentas a sitios de SharePoint y concederles permisos, puede usar el Centro de administración de Microsoft 365, comandos individuales de PowerShell o PowerShell y un archivo CSV. De estas opciones, el uso del archivo CSV es la forma más rápida de automatizar esta tarea.

El proceso básico consiste en crear un archivo CSV que tiene encabezados (columnas) que se corresponden con los parámetros que el script de Windows PowerShell necesita. Puede crear fácilmente dicha lista en Excel y luego exportarla como un archivo CSV. A continuación, puede usar un script de Windows PowerShell para iterar a través de registros (filas) en el archivo CSV, agregar los usuarios a los grupos y los grupos a los sitios.

Por ejemplo, vamos a crear un archivo CSV para definir un grupo de colecciones de sitios, grupos y permisos. A continuación, crearemos un archivo CSV para rellenar los grupos con usuarios. Por último, crearemos y ejecutaremos un script Windows PowerShell que crea y rellena los grupos.

El primer archivo CSV agrega uno o varios grupos a una o varias colecciones de sitios y tendrá esta estructura:

Rúbrica:

Site,Group,PermissionLevels

Artículo:

https://tenant.sharepoint.com/sites/site,group,level

Este es un archivo de ejemplo:

Site,Group,PermissionLevels
https://contoso.sharepoint.com/sites/contosotest,Contoso Project Leads,Full Control
https://contoso.sharepoint.com/sites/contosotest,Contoso Auditors,View Only
https://contoso.sharepoint.com/sites/contosotest,Contoso Designers,Design
https://contoso.sharepoint.com/sites/TeamSite01,XT1000 Team Leads,Full Control
https://contoso.sharepoint.com/sites/TeamSite01,XT1000 Advisors,Edit
https://contoso.sharepoint.com/sites/Blog01,Contoso Blog Designers,Design
https://contoso.sharepoint.com/sites/Blog01,Contoso Blog Editors,Edit
https://contoso.sharepoint.com/sites/Project01,Project Alpha Approvers,Full Control

El segundo archivo CSV agrega uno o varios usuarios a uno o varios grupos y tendrá esta estructura:

Rúbrica:

Group,LoginName,Site

Artículo:

group,login,https://tenant.sharepoint.com/sites/site

Este es un archivo de ejemplo:

Group,LoginName,Site
Contoso Project Leads,bobbyo@contoso.com,https://contoso.sharepoint.com/sites/contosotest
Contoso Auditors,allieb@contoso.com,https://contoso.sharepoint.com/sites/contosotest
Contoso Designers,bonniek@contoso.com,https://contoso.sharepoint.com/sites/contosotest
XT1000 Team Leads,dorenap@contoso.com,https://contoso.sharepoint.com/sites/TeamSite01
XT1000 Advisors,garthf@contoso.com,https://contoso.sharepoint.com/sites/TeamSite01
Contoso Blog Designers,janets@contoso.com,https://contoso.sharepoint.com/sites/Blog01
Contoso Blog Editors,opalc@contoso.com,https://contoso.sharepoint.com/sites/Blog01
Project Alpha Approvers,robinc@contoso.com,https://contoso.sharepoint.com/sites/Project01

En el paso siguiente, debe tener los dos archivos CSV guardados en la unidad. Estos son comandos de ejemplo que usan archivos CSV y para agregar permisos y pertenencia a grupos:

Import-Csv C:\O365Admin\GroupsAndPermissions.csv | ForEach {New-SPOSiteGroup -Group $_.Group -PermissionLevels $_.PermissionLevels -Site $_.Site}
Import-Csv C:\O365Admin\Users.csv | ForEach {Add-SPOUser -Group $_.Group –LoginName $_.LoginName -Site $_.Site}

El script importa el contenido del archivo CSV y usa los valores de las columnas para rellenar los parámetros de los comandos New-SPOSiteGroup y Add-SPOUser . En nuestro ejemplo, guardamos este archivo en la carpeta O365Admin en la unidad C, pero puede guardarlo donde quiera.

Ahora, vamos a quitar un montón de personas para varios grupos en sitios diferentes con el mismo archivo CSV. Este es un comando de ejemplo:

Import-Csv C:\O365Admin\Users.csv | ForEach {Remove-SPOUser -LoginName $_.LoginName -Site $_.Site -Group $_.Group}

Generar informes de usuario

Es posible que quiera obtener un informe para algunos sitios y mostrar los usuarios de esos sitios, su nivel de permiso y otras propiedades. Este es el aspecto de la sintaxis:

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | select * | Format-table -Wrap -AutoSize | Out-File c\UsersReport.txt -Force -Width 360 -Append

Esto toma los datos de estos tres sitios y los escribe en un archivo de texto en la unidad local. El parámetro –Append agrega nuevo contenido a un archivo existente.

Por ejemplo, vamos a ejecutar un informe en los sitios ContosoTest, TeamSite01 y Project01 para el inquilino Contoso1:

$tenant = "contoso"
$site = "contosotest"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append
$site = "TeamSite01"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site |Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append
$site = "Project01"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append

Tuvimos que cambiar solo la variable $site . La variable $tenant mantiene su valor a través de las tres ejecuciones del comando.

Sin embargo, ¿qué pasa si quisiera hacer esto para cada sitio? Puede hacerlo sin tener que escribir todos los sitios web con este comando:

Get-SPOSite | ForEach {Get-SPOUser –Site $_.Url} | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append

Este informe es bastante sencillo y podemos agregar más código para crear informes más específicos o que incluyan información más detallada. Pero esto debería proporcionarle una idea de cómo usar el Shell de administración de SharePoint para administrar usuarios en el entorno de SharePoint.

Consulte también

Conexión a PowerShell de SharePoint

Administración de SharePoint con PowerShell

Administrar Microsoft 365 con PowerShell

Introducción a PowerShell para Microsoft 365