Permiso de acceso completo | Permiso de acceso completo al buzón: todo lo que siempre quiso saber pero tuvo miedo de preguntar, parte 2/3 .com
En este artículo, revisaremos ejemplos de diferentes escenarios para usar el permiso del buzón de acceso total. Por ejemplo, asignar permisos de buzón de acceso completo a un usuario en otros buzones de usuario, asignar permisos de buzón de acceso completo a un usuario en todos los buzones de usuario (modo masivo), asignar permisos de buzón de acceso completo a un usuario en la lista filtrada y mucho más. .
Permiso de buzón de acceso total | Serie de artículos
La serie de artículos sobre permisos de buzón de acceso total incluye los tres artículos siguientes:
- Permiso de acceso total al buzón - Parte 1/3
- Permiso de acceso total al buzón: parte 2/3 (este artículo)
- Permiso de acceso total al buzón - Parte 3/3
Escenario 1. Asignar permisos de acceso total al buzón del usuario
Comenzaremos con el escenario más básico de uso de permisos de buzón.
En este ejemplo, debemos proporcionarle a Alice acceso completo al buzón de su administrador (John).
Como se mencionó anteriormente, se recomienda agregar el parámetro InheritanceType All al comando básico de PowerShell para permitir que Alice obtenga acceso a una nueva carpeta de correo que John podría crear en el futuro.
No necesitamos agregar la opción AutoMapping porque la opción de AutoMapping está habilitada de forma predeterminada. En otras palabras, después de ejecutar el siguiente comando de PowerShell, el buzón de John se agregará automáticamente al perfil de correo de Alice Outlook.
Sintaxis del comando Powershell:
Add-MailboxPermission -Identity <Identity> -User <Identity> -AccessRights FullAccess -InheritanceType AllEjemplo de comando de PowerShell:
Add-MailboxPermission -Identity "John" -User "Alice" -AccessRights FullAccess -InheritanceType AllEscenario 2. Asignar permisos de acceso total a un usuario en todos los buzones (modo masivo)
Nuestra tarea es proporcionar permisos de buzón de acceso completo de Alice a todos los buzones de usuario.
En este escenario, deberíamos considerar cancelar la opción predeterminada de AutoMapping porque la suposición subyacente es que Alice necesitará acceso a los buzones de correo de los usuarios de vez en cuando según el requisito específico, pero no queremos agregar automáticamente al correo de Alice Outlook. perfile decenas o cientos de buzones de correo.
- En la primera sección de la oración de PowerShell, le pedimos a PowerShell que obtenga una lista o una colección de todos los buzones de correo de Exchange Online. El resultado de la primera parte se canaliza a la segunda parte del comando de PowerShell.
- En la segunda parte, le asignamos a Alice un permiso de buzón de acceso completo en todos los buzones (la lista de buzones que obtuvimos de la primera parte del comando de PowerShell).
- Get-Mailbox -ResultSize ilimitado: cuando usamos el comando Get-Mailbox, la opción predeterminada de PowerShell es Obtener o mostrar los primeros 1000 buzones. En caso de que administre una organización empresarial que tiene más de 1000 buzones de correo, necesitaremos agregar la opción de: Get-Mailbox -ResultSize unlimited para obtener una lista de todos los buzones de correo existentes.
Ejemplo de comando de PowerShell:
Get-Mailbox -ResultSize unlimited | Add-MailboxPermission -User "Alice" -AccessRights FullAccess -InheritanceType all -AutoMapping $FalseEscenario 3. Asignar permisos de buzón a un usuario en el buzón de un miembro de la lista filtrada
En la siguiente sección, revisamos escenarios en los que queremos otorgar permiso de buzón de acceso completo a un usuario en una lista filtrada de buzones.
Escenario 3.1: asignar permisos de acceso total a un usuario en varios buzones de Exchange | Buzones de correo solo de usuarios
Nuestra tarea es proporcionar permisos de buzón de acceso completo de Alice a una lista filtrada de buzones de usuario. Queremos otorgar permiso de acceso completo a Alice solo al buzón de correo de un usuario.
(En el entorno Exchange, existe un tipo adicional de buzones, como buzones de sala, buzones de recursos, buzones compartidos, etc.).
- AutoMapping: el requisito adicional es desactivar la opción de automatización. Como se mencionó anteriormente, la función AutoMapping está implementada de forma predeterminada. En nuestro escenario, no queremos utilizar la opción AutoMapping porque queremos evitar el escenario en el que el perfil de correo de Alice Outlook incluye decenas o cientos de buzones. Implementaremos este requisito usando el parámetro: -AutoMapping $False
Ejemplo de comando de PowerShell:
Get-Mailbox -ResultSize unlimited -Filter {(RecipientTypeDetails -eq 'UserMailbox')} | Add-MailboxPermission -User "Alice" -AccessRights FullAccess -InheritanceType all -AutoMapping $FalseEscenario 3.2: asignar permisos de acceso total a un usuario en varios buzones de Exchange | Buzones que tienen un sufijo de dirección de correo específico
Nuestra tarea es proporcionar permisos de buzón de acceso completo de Alice para todos los buzones que tienen un sufijo de dominio específico en su dirección de correo electrónico. En nuestro ejemplo, queremos proporcionar acceso a Alice solo a los buzones que tienen el sufijo de nombre de dominio o365info.com.
El script de PowerShell que utilizamos tiene tres partes:
- En esta parte, le pedimos a PowerShell que obtenga una lista de todos los buzones de correo existentes.
- "Canalizamos" el resultado de la primera parte de la segunda parte del comando de PowerShell utilizando la carta de canalización ("|"). Luego, usamos los cmdlets Filter para filtrar o “sacar” de la lista de buzones los buzones que tienen un buzón con el sufijo de nombre de dominio: o365info.com
- Asignamos permisos de buzón de Alice Full Access a la lista filtrada de la lista de buzones que obtuvimos de la segunda parte del comando de PowerShell.
Sintaxis del comando de PowerShell:
Get-Mailbox -ResultSize unlimited -Filter {(Email Addresses -like "*<Mail address suffix>*")} | Add-MailboxPermission -User <Identity> -AccessRights FullAccess -InheritanceType all -AutoMapping $FalseEjemplo de comando de PowerShell:
Get-Mailbox -ResultSize unlimited -Filter {(Email Addresses -like "*o365info.com*")} | Add-MailboxPermission -User "Alice" -AccessRights FullAccess -InheritanceType all -AutoMapping $FalseEscenario 3.3: asignar permisos de acceso total a un usuario en varios buzones de Exchange | Usuarios de buzones de correo de un departamento específico
Nuestra tarea es proporcionar permisos de buzón de Alice a los usuarios que trabajan para el departamento de Sellos. Preste atención al hecho de que queremos filtrar a los usuarios con un carácter particular (usuarios que trabajan en el departamento de ventas) y luego proporcionarle a Alice un permiso de acceso completo al buzón de este usuario.
Cuando queremos hacer referencia a una propiedad como un departamento, necesitamos usar el "objeto Usuario" porque una propiedad como departamento o administrador es una propiedad de Usuario y no una propiedad de buzón.
Para poder obtener información sobre una propiedad de objeto de usuario en el entorno de Exchange Online, necesitaremos utilizar los cmdlets Get-User. El cmdlet Get-User nos permite hacer referencia a los usuarios de Office 365 con buzones.
Sintaxis del comando de PowerShell:
Get-User -Filter {(Department -eq "<Department>")} | Add-MailboxPermission -User <Identity> -AccessRights FullAccess -InheritanceType all -AutoMapping $FalseEjemplo de comando de PowerShell:
Get-User -Filter {(Department -eq "Sales")} | Add-MailboxPermission -User "Alice" -AccessRights FullAccess -InheritanceType all -AutoMapping $FalseEscenario 3.4: asignar permisos de acceso total a un usuario en varios buzones de Exchange | usuarios que trabajan en el departamento X o en el departamento Y
Nuestra tarea es proporcionar permisos de buzón de acceso completo a Alice para los usuarios que trabajan en el departamento de Ventas y para los usuarios que trabajan en el departamento de Marketing . Para poder referenciar a usuarios de dos departamentos diferentes, utilizaremos el operador lógico “OR”.
Sintaxis del comando de PowerShell:
Get-User -Filter {(Department -eq "<Department>") -or (Department -eq "<Department>")} | Add-MailboxPermission -User <Identity> -AccessRights FullAccess -InheritanceType all -AutoMapping $FalseEjemplo de comando de PowerShell:
Get-User -Filter {(Department -eq "Sales") -or (Department -eq "Marketing")} | Add-MailboxPermission -User "Alice" -AccessRights FullAccess -InheritanceType all -AutoMapping $FalseEscenario 3.5: asignar permisos de acceso total a un usuario en varios buzones de Exchange | usando una combinación de operadores lógicos
Nuestra tarea es proporcionar permisos de buzón de acceso completo a Alice para:
- Todos los responsables que trabajan en el departamento de Ventas.
- Todos los responsables que trabajan en el departamento de Marketing.
Para poder implementar la condición requerida, utilizaremos el operador lógico: “O” y adicionalmente el operador lógico “Y”.
Sintaxis del comando de PowerShell:
Get-User -Filter {(Department -eq "<Department>") -or (Department -eq "<Department>")-and (Title -eq "<Title>")} | Add-MailboxPermission -User <Identity> -AccessRights FullAccess -InheritanceType all -AutoMapping $FalseEjemplo de comando de PowerShell:
Get-User -Filter {(Department -eq "Sales") -or (Department -eq "Marketing")-and (Title -eq "Manger")} | Add-MailboxPermission -User "Alice" -AccessRights FullAccess -InheritanceType all -AutoMapping $FalseEscenario 3.6: asignar permisos de acceso total a un usuario en varios buzones de Exchange | usando la opción de filtro para excluir la lista de usuarios
Para realizar esta tarea, necesitamos utilizar un script de PowerShell más complicado:
- Obtenga una lista de todos los usuarios que tienen el rol de administrador global.
- Extraiga la dirección de correo electrónico de cada uno de los usuarios que se configuraron como Administrador global.
- Asigne un permiso de buzón de acceso completo a Alice, para todos los buzones, pero excluimos o filtramos de la lista todos los buzones que "pertenecen" a los usuarios que tienen el rol de Administrador global.
Ejemplo de comando de PowerShell:
# Get role Members, extract their Email address property
$role = Get-MsolRole -RoleName 'Company Administrator'
$roleMember = Get-MsolRoleMember -RoleObjectId $role.ObjectId | Select-Object -ExpandProperty EmailAddress
# Get all users mailboxes except Members of the 'Company Administrator' role
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox |
Where { $roleMember -notcontains $_.WindowsEmailAddress } |
Add-MailboxPermission -User Alice -AccessRights FullAccess -InheritanceType All -AutoMapping $FalseEscenario 4. Asignar permisos de buzón de acceso total a un grupo de seguridad (grupo de seguridad habilitado para correo)
Usar un grupo de seguridad para asignar permisos de buzón es la mejor práctica para la tarea de asignación y administración de permisos.
El uso del grupo de seguridad nos permite disfrutar de la "naturaleza dinámica" del grupo de seguridad. Cuando utilizamos la opción de asignar permiso a un usuario individual, la gestión del permiso se vuelve complicada porque es muy difícil documentar y rastrear la información sobre qué usuarios tienen permiso explícito en los buzones de correo de otros usuarios.
El uso de un grupo de Seguridad nos permite simplificar y optimizar la asignación y gestión de permisos de los buzones. Por ejemplo, en lugar de otorgar permiso a seis usuarios para un buzón en particular, podemos crear un grupo de seguridad, agregar los usuarios al grupo de seguridad y asignar el permiso al grupo de seguridad.
En caso de que necesitemos habilitar el acceso de usuarios adicionales al buzón de usuario específico, todo lo que debemos hacer es simplemente agregar estos usuarios al grupo de Seguridad. Los “nuevos usuarios” heredarán automáticamente el permiso asignado al grupo de Seguridad.
La misma lógica se aplica cuando necesitamos eliminar o eliminar el permiso del buzón de un usuario específico.
Puedes leer información más detallada sobre los conceptos y las ventajas de asignar permisos a un grupo de Seguridad en el artículo Gestión efectiva de permisos en Exchange Online mediante el uso de grupos.
Cosas adicionales que me gustaría mencionar son:
- AutoMap
Cuando asignamos permiso de buzón a un grupo de seguridad, la función AutoMap no se activa para cada uno de los miembros del grupo. La sencilla razón es que cuando asignamos un permiso de buzón a un grupo de seguridad, el permiso se asigna directamente al grupo y no a los miembros del grupo.
- Mostrar información sobre permisos
Cuando usamos PowerShell para mostrar información sobre "quién tiene permiso para un buzón en particular", en caso de que asignemos permiso a un grupo de seguridad, los resultados mostrados se relacionarán con el nombre del grupo de Seguridad y no al nombre de cada uno de los miembros del grupo de Seguridad. En otras palabras, cuando mostramos el permiso del buzón, no tenemos la opción de obtener información sobre los usuarios específicos que son miembros del grupo de seguridad.
Escenario 4.1: asignar permisos de buzón a un grupo de seguridad (grupo de seguridad habilitado para correo), en el otro buzón de usuario
En el siguiente ejemplo, proporcionamos un permiso de buzón de acceso total a un grupo de seguridad denominado: NY-HelpDesk.
Nota: La sintaxis del comando de PowerShell para asignar permiso de uso al buzón o un grupo de seguridad es idéntica. No hay ningún parámetro especial que necesitemos que utilice cuando asignamos permiso a un grupo de seguridad.
Sintaxis del comando de PowerShell:
Add-MailboxPermission <Identity> -User <Identity> -AccessRights FullAccess -InheritanceType AllEjemplo de comando de PowerShell:
Add-MailboxPermission "John" -User "NY-HelpDesk" -AccessRights FullAccess -InheritanceType AllEscenario 4.2: asignación de permiso a un grupo de seguridad (grupo de seguridad habilitado para correo) en una lista filtrada de buzones
Un ejemplo adicional podría ser un escenario en el que queremos proporcionar permisos de buzón de acceso total al grupo de seguridad para todos los buzones de correo de los usuarios.
Por ejemplo, queremos asignar permisos de buzón de acceso total a un grupo de seguridad llamado: "NY-HelpDesk" para todos los buzones de correo del usuario.
Como se mencionó anteriormente, cuando brindamos un permiso de buzón a un grupo de seguridad, no hay ningún cambio en la sintaxis estándar de PowerShell que debemos usar en comparación con el escenario en el que brindamos un permiso de buzón a un usuario.
Todo lo que necesitamos hacer es usar el nombre del grupo de seguridad (grupo de seguridad habilitado para correo) después del parámetro -Usuario.
Sintaxis del comando de PowerShell:
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox | Add-MailboxPermission -User <Identity> -AccessRights FullAccess -InheritanceType AllEjemplo de comando de PowerShell:
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox | Add-MailboxPermission -User "NY-HelpDesk" -AccessRights FullAccess -InheritanceType AllEscenario 4.3: Asignación de permiso a un grupo de seguridad (grupo de seguridad habilitado para correo) en Buzón de usuario + usando la opción AutoMap
Una de las principales diferencias entre asignar un permiso de buzón a un grupo de seguridad y asignar permiso a un usuario específico es que el futuro de AutoMap no se implementará para cada uno de los miembros del grupo de seguridad debido a la asignación de permiso implementada haciendo referencia al " Objeto de grupo” y no los miembros del grupo de seguridad.
Para complicar un poco más el escenario, agregaremos una demanda adicional: nos gustaría "activar" la función AutoMap para cada uno de los miembros del grupo de seguridad.
Para poder realizar esta tarea, usaremos un pequeño truco, en lugar de asignar permiso directamente al grupo de seguridad, primero extraeremos una lista de los miembros del grupo (una lista de los nombres de cada uno de los miembros del grupo) y luego , usaremos los cmdlets ForEach PowerShell para proporcionar los permisos de buzón necesarios para cada uno de los miembros del grupo.
Sintaxis del comando de PowerShell:
$Members = Get-DistributionGroupMember -id <Identity>
ForEach ($Member in $Members) {
Add-MailboxPermission <Identity> -user $Member.name -AccessRights FullAccess
-InheritanceType All -AutoMapping $True
}Ejemplo de comando de PowerShell:
$Members = Get-DistributionGroupMember -id "NY-HelpDesk"
ForEach ($Member in $Members) {
Add-MailboxPermission "John" -user $Member.name -AccessRights FullAccess
-InheritanceType All -AutoMapping $True
}Escenario 5. Asignación de permisos a un grupo de distribución en el buzón de un usuario
De forma predeterminada, no podemos asignar un permiso a un grupo de distribución porque un grupo de distribución no es un "objeto de seguridad". El grupo de Distribución sirve para "reunir" destinatarios de los documentos enviando correo a un grupo de destinatarios.
En caso de que intentemos asignar un permiso de buzón de acceso total a un grupo de distribución, la consola de PowerShell mostrará el siguiente error:
No se encontró "usuario o grupo " ". Asegúrate de haberlo escrito correctamente. ”
El error de la consola de PowerShell no está claro porque el mensaje dice que el grupo específico no existe. Este mensaje no es del todo correcto porque el grupo existe, pero como el grupo es un grupo de distribución, no hay ninguna opción para asignar un permiso de buzón al grupo.
Entonces ahora la pregunta obvia podría ser: “¿por qué uso el título “Asignación de permisos de buzón a un grupo de distribución en el buzón de un usuario” para esta sección? "
La respuesta es que podemos utilizar un pequeño truco o solución alternativa para realizar esta tarea.
El truco que usamos es primero usar un comando de PowerShell que extraiga cada uno de los miembros del grupo de distribución y, en el siguiente paso, asignaremos el permiso de buzón requerido para cada uno de los miembros del grupo por separado.
La asignación del permiso de buzón para cada uno de los miembros del grupo se implementa mediante el cmdlet de PowerShell ForEach.
En la primera parte, definimos una Variable llamada $Members que servirá como un “contenedor” o matriz que contiene a todos los miembros (usuarios) de un grupo de distribución: “NY-HelpDesk”
El “contenido de la variable $Members se completa mediante los cmdlets de PowerShell Get-DistributionGroupMember.
La siguiente sección se basa en los cmdlets ForEach. Entre paréntesis de los cmdlets ForEach les decimos a los cmdlets ForEach que "hagan algo" para cada elemento que se incluye en la matriz $Members.
Usamos una variable adicional llamada: $Member que representará una sola entidad, cada vez (un usuario específico) cuando ejecutamos el comando de permiso del buzón. El nombre de la Variable es solo un nombre que yo he elegido. Podemos elegir cualquier nombre que queramos.
La sección que define mediante el uso de llaves incluye el comando de PowerShell que queremos ejecutar. En nuestro ejemplo, utilizamos Add-MailboxPermission.
Preste atención a que, en comparación con la sintaxis estándar del comando Add-MailboxPermission, en lugar de especificar el nombre de usuario que obtendrá permisos de acceso completo al buzón de correo de John, usamos la variable $Member con el nombre de propiedad ($Member.name).
El motivo es que cuando se utiliza la opción ForEach, el comando Add-MailboxPermission se ejecutará una y otra vez para cada uno de los miembros del grupo hasta el último miembro de la lista.
En la última parte, usamos la opción -AutoMapping con el valor $True. Esto se debe a que queremos habilitar la opción -AutoMapping para cada uno de los miembros del grupo.
Sintaxis del comando de PowerShell:
$Members = Get-DistributionGroupMember -id <Identity>
ForEach ($Member in $Members) {
Add-MailboxPermission <Identity> -user $Member.name -AccessRights FullAccess -InheritanceType All -AutoMapping $True
}Ejemplo de comando de PowerShell:
$Members = Get-DistributionGroupMember -id "NY-HelpDesk"
ForEach ($Member in $Members) {
Add-MailboxPermission "John" -user $Member.name -AccessRights FullAccess -InheritanceType All -AutoMapping $True
}Escenario 6. Asignar permiso a un grupo de distribución en una lista filtrada de buzones
En este ejemplo, queremos otorgar permiso de buzón de acceso total a un miembro de un grupo de distribución para todos los buzones de correo existentes.
Debido a que no podemos asignar el permiso del buzón de acceso total directamente a un grupo de distribución, usaremos dos matrices "Para cada uno".
- Referenciando a los miembros del grupo - para poder hacer referencia a cada uno de los miembros del grupo, crearemos una Variable llamada $Members que servirá como un “contenedor” o una matriz que contiene todos los miembros (usuarios) de un grupo de seguridad: “NY -Mesa de ayuda"
- Hacer referencia a los buzones de correo de Exchange Online: para poder hacer referencia a todos los buzones de correo de los usuarios, crearemos una variable adicional denominada $Mailboxes que servirá como un "contenedor" para todos los buzones de correo del usuario.
- La siguiente sección contiene una combinación de dos oraciones ForEach. La primera sección ForEach ejecuta el comando por separado para cada uno de los buzones.
- La siguiente sección ForEach (anidación de ForEach) ejecutará el comando para cada uno de los miembros del grupo.
- La parte que describe al usuario que desea compartir su buzón (proporcionar acceso completo a su buzón) está representada por la variable $Mailbox.name.
- La parte que describe el usuario que tendrá acceso al buzón del usuario (está representada por la Variable $Member.name.
Sintaxis del comando de PowerShell:
$Members = Get-DistributionGroupMember -id <Identity>
$Mailboxes = Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox
ForEach ($mailbox in $Mailboxes) {
ForEach ($member in $Members) {
Add-MailboxPermission $mailbox.name -AccessRights FullAccess -user $Member.name
}
}Ejemplo de comando de PowerShell:
$Members = Get-DistributionGroupMember -id "NY-HelpDesk"
$Mailboxes = Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox
ForEach ($mailbox in $Mailboxes) {
ForEach ($member in $Members) {
Add-MailboxPermission $mailbox.name -AccessRights FullAccess -user $Member.name
}
}Escenario 7. Asignar permiso a un usuario en la lista de usuarios de un Archivo
En esta sección, nos relacionamos con un escenario en el que queremos otorgar permiso a un usuario sobre una colección de otros usuarios (destinatarios). La diferencia con la situación anterior es que la “colección” de usuario se encuentra en un archivo.
Conceptos generales al trabajar con el archivo.
Hasta ahora, estábamos acostumbrados a crear una lista de usuarios o buzones de correo mediante los cmdlets Get PowerShell. Podemos describir este método como "dinámico" porque la lista que obtenemos mediante una consulta es cuando usamos un comando como Get-Mailbox de forma predeterminada, y el resultado se almacena en la memoria del escritorio. vs. Con este método, otra opción que podemos utilizar es almacenar información en un Archivo.
Podemos describir este método como "estático" porque el contenido del archivo incluye información estática. Hay un par de ventajas al usar un archivo como fuente de información porque cuando la información se almacena en un archivo, podemos usar una aplicación como Excel para editar los datos fácilmente.
La mayoría de las veces, la mejor práctica es utilizar un formato de archivo denominado: CSV (valores separados por comas).
Técnicamente, el contenido de un archivo CSV se basa en un formato de texto simple, pero la diferencia es que el formato CSV nos permite imitar o simular la estructura de una tabla de datos que incluye una columna, encabezados de columna y una fila.
En la siguiente sección, revisaremos algunos ejemplos sobre el uso de un archivo como "fuente de información" para proporcionar permisos de buzón.
Escenario 7.1: asignar permisos de acceso total a una lista (desde un archivo) en el buzón de un usuario
En el siguiente escenario, nos gustaría proporcionar una lista de usuarios y permiso de buzón de acceso completo al buzón de John. La diferencia con un escenario anterior es que la lista de usuarios está contenida dentro de un archivo que ya hemos preparado con antelación.
En la siguiente captura de pantalla, podemos ver un ejemplo de la estructura del archivo. Como puedes ver, la estructura es muy simple. Necesitaremos usar un archivo CSV porque el formato CSV nos permite "imitar" la estructura de una tabla usando un simple archivo TXT.
La "tabla" que utilizamos incluye un encabezado de fila llamado Usuarios. El nombre "Usuarios" es sólo un ejemplo. Puede elegir cualquier otro nombre que se adapte a sus necesidades (evite seleccionar un nombre de encabezado que incluya espacios).
Para importar el contenido de la lista desde el archivo CSV, usaremos el cmdlet de PowerShell Import-Csv y proporcionaremos la ruta y el nombre del archivo. En nuestro ejemplo, el nombre del archivo es: User.csv y la ubicación del archivo es: C:\Temp
Después del paso "importar", usaremos los cmdlets ForEach PowerShell para asignar el permiso requerido a cada uno de los usuarios por separado.
Podemos definir la lista de usuarios del archivo CSV como una matriz. Para permitir que PowerShell se relacione con cada uno de los usuarios (miembro/elemento dentro de la matriz), usamos $_. firmar. El $_. El carácter contiene el objeto de canalización actual, utilizado en bloques de script, filtros y la instrucción Where.
En nuestro ejemplo, el encabezado de la columna del usuario se llama "usuarios" (puede elegir cualquier otro nombre que se adapte a sus necesidades).
Si observa la sintaxis del comando PowerShell, notará que en lugar de usar un nombre de usuario específico, usamos $_.users;
El significado es que los cmdlets ForEach PowerShell examinarán la columna de la tabla denominada "usuarios" y ejecutarán el comando de permiso del buzón para cada uno de los usuarios que aparecen debajo de la columna de la tabla.
Los caracteres $_.users sirven como “espacio” para el valor del nombre de usuario que se reemplazará cada vez con un nombre de usuario diferente hasta el final de la lista.
Ejemplo de comando de PowerShell:
Import-Csv "C:\Temp\User.csv" | ForEach { Add-MailboxPermission "John" -User $_.users -AccessRights FullAccess -InheritanceType all }Escenario 7.2: asignar permisos de acceso total a un usuario en una lista de usuarios (desde un archivo)
En este escenario, queremos proporcionarle a un usuario (John en nuestro ejemplo) permiso de buzón de acceso completo a una lista de buzones de correo del usuario. La lista del usuario nombrado se guarda en un archivo.
Ejemplo de comando de PowerShell:
$Mailboxes = Import-Csv "C:\Temp\User.csv"
ForEach ($Mailbox in $Mailboxes) {
Add-MailboxPermission $Mailbox.users -User "John" -AccessRight FullAccess -InheritanceType All
}Usando un archivo TXT
Este escenario es idéntico al escenario anterior (escenario 7.2). La diferencia es que, en este escenario, importaremos la información requerida desde un archivo TXT en lugar de un archivo CSV.
En la siguiente captura de pantalla, podemos ver un ejemplo del contenido\estructura del archivo TXT.
La sintaxis de PowerShell que utilizamos es un poco diferente. Cuando queremos leer datos de un archivo TXT, utilizamos el cmdlet de PowerShell Get-Content.
Ejemplo de comando de PowerShell:
Get-Content "C:\Temp\User.txt" | ForEach { Add-MailboxPermission "Alice" -User $_ -AccessRights FullAccess -InheritanceType all }Escenario 7.3: Asignación de permisos de buzón a una lista de usuarios en una lista de otra lista de usuarios (desde un archivo)
En el siguiente ejemplo, utilizamos una opción más avanzada. El archivo CSV incluye dos columnas.
La primera columna (llamada Lista1) incluye una lista de usuarios a quienes queremos otorgarles permisos de acceso completo a los usuarios que figuran en la segunda columna (Lista2).
Por ejemplo, el usuario Jeff obtendrá permiso de acceso total al buzón de John.
Ejemplo de comando de PowerShell:
Import-Csv "C:\Temp\User.csv" | ForEach { Add-MailboxPermission $_.List1 -User $_. List2 -AccessRights FullAccess -InheritanceType all }Escenario 8. Asignación de permisos de buzón de acceso total a miembros de una lista filtrada en un buzón de usuario
En el siguiente escenario, queremos otorgar permiso de buzón a una lista filtrada de usuarios a buzón de usuario (relación de varios a uno).
Por ejemplo, queremos proporcionar un permiso de buzón de acceso completo a todos los usuarios cuyo título sea: administrador del buzón de John.
- Para poder obtener una lista de usuarios cuyo título es: administrador, necesitaremos usar el cmdlet de PowerShell Get-User. Como se mencionó anteriormente, la propiedad Título es una propiedad de objeto Usuario y no una propiedad de buzón (el buzón no puede ser un administrador, pero un usuario puede ser un administrador).
- En la primera parte del script de PowerShell, creamos una variable llamada $Members que almacenará o contendrá la lista de los usuarios cuyo título es administrador.
- Usamos los cmdlets Filter para filtrar (obtener una lista filtrada) solo a los usuarios que responden a la condición Título=administrador.
- En la siguiente sección, utilizamos los cmdlets ForEach que nos permiten recorrer (y realizar una acción) cada elemento de una colección (todos los usuarios cuyo título es: administrador).
- En la última parte, asignamos el permiso del buzón de acceso completo a cada uno de los miembros del buzón del usuario (John en nuestro ejemplo). Para poder hacer referencia a cada uno de los buzones del administrador, creamos una variable llamada Miembro y agregamos el nombre del identificador para obtener el Nombre del buzón.
Sintaxis del comando de PowerShell:
$Members = Get-User -ResultSize unlimited -Filter { (RecipientType -eq 'UserMailbox') -and (Title -like '*<Title>*') }
ForEach ($Member in $Members) {
Add-MailboxPermission <Identity> -AccessRights FullAccess -user $Member.name -InheritanceType all
}Ejemplo de comando de PowerShell:
$Members = Get-User -ResultSize unlimited -Filter { (RecipientType -eq 'UserMailbox') -and (Title -like '*manager*') }
ForEach ($Member in $Members) {
Add-MailboxPermission "John" -AccessRights FullAccess -user $Member.name -InheritanceType all
}Escenario 9. Asignación de permisos de buzón de acceso total a un grupo de seguridad (grupo de seguridad habilitado para correo) en el de otro miembro del grupo
Técnicamente no podemos proporcionar un permiso a un grupo de Seguridad directamente a otro grupo (grupo de Seguridad o Distribución).
En el siguiente escenario, usaremos el truco de extraer los miembros del grupo (de un grupo de seguridad o de un grupo de distribución) como usuarios individuales y luego proporcionaremos el permiso requerido para cada uno de los miembros individuales del grupo al grupo de seguridad.
En nuestro ejemplo, asignaremos un permiso de Acceso total a un grupo de seguridad llamado SEC-01 para cada uno de los miembros del grupo de distribución llamado DL-01.
- En la primera parte del script de PowerShell, creamos una variable llamada $Member que almacenará o contendrá los miembros del grupo de destino. Los cmdlets de PowerShell Get-DistributionGroupMember sirven para obtener un grupo de distribución y también un grupo de seguridad habilitado para correo.
- En la siguiente sección, utilizamos los cmdlets ForEach que nos permiten recorrer y realizar una acción en cada elemento de una colección (todos los miembros del grupo de distribución DL-01).
- En la última parte, asignamos el permiso del buzón de acceso total a un grupo de seguridad habilitado para correo llamado: Sec-01. Para poder hacer referencia por separado a cada uno de los miembros del grupo de distribución DL-01, usamos una variable llamada $Member y agregamos el nombre de la propiedad para obtener el Nombre del buzón (la identidad de cada usuario ).
Sintaxis del comando de PowerShell:
$Members = Get-DistributionGroupMember -id "<Identity>"
ForEach ($Member in $Members) {
Add-MailboxPermission $Member.name -AccessRights FullAccess -user "" -InheritanceType all
}Ejemplo de comando de PowerShell:
$Members = Get-DistributionGroupMember -id "DL-01"
ForEach ($Member in $Members) {
Add-MailboxPermission $Member.name -AccessRights FullAccess -user "SEC-01" -InheritanceType all
}Escenario 10. Asignación de permisos de buzón de acceso total a un grupo en los buzones de otro miembro del grupo y viceversa
El siguiente escenario parece un poco confuso. Sin embargo, ¡no temas! La necesidad del negocio: Contamos con dos grupos de Distribución: gerentes del grupo de Distribución y asistentes del grupo de Distribución. Cada uno de los administradores necesita permisos de buzón de acceso total para cada uno de los buzones del asistente y viceversa: cada uno de los asistentes necesita permisos de buzón de acceso total para cada uno de los buzones del administrador.
- El nombre del grupo del administrador es: Manager-DL
- El nombre del grupo del asistente es: Assistant-DL
Ejemplo de comando de PowerShell:
$GroupA = Get-DistributionGroupMember -Identity "Manager-DL"
$GroupB = Get-DistributionGroupMember -Identity "Assistant-DL"
# Iterate over the Members of each group
# Give each member of groupA full mailbox permissions to all Members of groupB
ForEach ($MemberA in $GroupA) {
ForEach ($MemberB in $GroupB) {
Add-MailboxPermission -Identity $MemberB.Identity -User $memberA.Identity -AccessRights FullAccess -AutoMapping:$False -InheritanceType All
Add-MailboxPermission -Identity $memberA.Identity -User $memberB.Identity -AccessRights FullAccess -AutoMapping:$False -InheritanceType All
}
}¡Eso es todo!
En el próximo artículo, analizaremos el permiso del buzón de acceso total: todo lo que siempre quiso saber pero tuvo miedo de preguntar, parte 3/3.















