Archivo

Archivo para la categoría ‘Powershell’

Tip: Powershell interactivo en Office365

lunes, 15 de julio de 2013 Sin comentarios

Buenas, hoy os traigo un pequeño tip a la hora de trabajar con PowerShell para los que no les resulta tan fácil y no quieren acordarse de modificadores y argumentos cuando se trabaja con Office365. no es otro que el modificador «Out-GridView«. Este modificador no es nada del otro mundo pero que poca gente conoce y alguno ya me lo ha preguntado por mail y permite trabajar de forma interactiva con la información que solicitamos sin necesidad de estar escribiendo o adivinando en muchos casos los identificadores para filtrar información en pantalla y de forma amigable en lugar de solo texto.

Por ejemplo, si ejecutamos el comando «Get-Mailbox | Out-GridView» obtendremos un listado de los buzones dados de alta en nuestra organización, incluyendo los servidores asignados a cada usuario y su cuota de almacenamiento así como su identificador.

Si se utiliza en combinación con otros modificadores podremos extender la información y sobre esa información jugar agregando filtros para concretar lo que queremos ver en pantalla, por ejemplo, en la siguiente captura ejecutamos el comando «Get-MsolUser | Get-Member | Out-GridView«:

2777384[1]

Espero que sea de ayuda para muchos.

Categories: IT, Powershell Tags: ,

Reenvio de correos en Office365 con PowerShell

viernes, 7 de junio de 2013 Sin comentarios

exchange_2013

Una de las ventajas que permite Exchange Online como parte de Office365, es la de poder reenviar los correos a otra dirección mediante el portal de cada usuario de una forma sencilla y rápida. Sin embargo, que ocurre cuando queremos hacer esto desde el punto de vista de administrador? tendríamos que hacerlo usuario por usuario. tedioso para 500 usuarios verdad?.

Bien pues podemos agilizar todo este proceso mediante PowerShell con los siguientes comandos:

Reenviar correos a otro buzon:

Set-Mailbox usuario@dominio.com -ForwardingAddress buzon_destino@dominio.com

Reenviar correos a otro buzon sin que queden los mensajes en el usuario:

Set-Mailbox usuario@dominio.com -ForwardingAddress buzon_destino@dominio.com -DeliverToMailboxAndForward $false

Reenviar correos a otro buzon ajeno a nuestra organización:

Set-Mailbox usuario@dominio.com -ForwardingSmtpAddress buzon_destino@dominio.com

Reenviar correos a otro buzon ajeno a nuestra organización sin que queden los mensajes en el usuario:

Set-Mailbox usuario@dominio.com -ForwardingSmtpAddress buzon_destino@dominio.com -DeliverToMailboxAndForward $false

Aplicar reenvio de correo a usuarios de forma masiva:

Get-Mailbox | Where {$_.RecipientType -eq «UserMailbox»} | Set-Mailbox -ForwardingAddress buzon_destino@dominio.com

Aplicar reenvio de correo a usuarios de forma masiva con entrega en usuarios externos:

Get-Mailbox | Where {$_.RecipientType -eq «UserMailbox»} | Set-Mailbox -ForwardingSmtpAddress buzon_destino@dominio.com

Obtener información de reenvio aplicado a un usuario:

Get-Mailbox -Identity usuario@dominio.com | fl DeliverToMailboxAndForward, ForwardingAddress, ForwardingSmtpAddress

Quitar reenvio de correo:

Set-Mailbox usuario@dominio.com -ForwardingAddress $null

Quitar reenvio de correo enviado a un usuario ajeno a nuestra organizacion:

Set-Mailbox usuario@dominio.com -ForwardingSmtpAddress $null

Quitar reenvio de correo a usuarios de forma masiva:

Get-Mailbox | Where {$_.RecipientType -eq «UserMailbox»} | Set-Mailbox -ForwardingAddress $null

Quitar reenvio de correo enviados a usuarios externos a usuarios de forma masiva:

Get-Mailbox | Where {$_.RecipientType -eq «UserMailbox»} | Set-Mailbox -ForwardingSmtpAddress $null

 

Para deshabilitar la opción de reenvio de correos visible a los usuarios:

Leer este articulo

 

Espero que os sirva de algo.

Deshabilitar opcion de reenvio en OWA – Office365

viernes, 31 de mayo de 2013 Sin comentarios

owa logo

Buenas, hace poco tuve una petición de un cliente donde indicaba la necesidad de impedir que los usuarios pudiesen activar la opción de reenvio de correo desde Outlook Web App en Exchange Online.

El caso es que hacerlo en un Exchange On-Premise es muy sencillo, pero en Exchange Online no aparece ninguna opción modificable y por PowerShell junto con el uso de RBAC es posible y quería compartirlo con vosotros.

Primero que nada, tendremos que configurar nuestro entorno de PowerShell para poder conectarnos con Office365.

A continuación iniciamos sesión con credenciales de Administrador mediante lo siguiente:

$LIveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LIveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session

Una vez iniciada sesión tendremos que habilitar las personalizaciones en nuestra suscripción con el siguiente comando:

Enable-OrganizationCustomization

Después crearemos un nuevo rol de administración tomando como base el rol base existente con el siguiente comando:

New-ManagementRole -Name Nombre_de_rol -Parent MyBaseOptions

Eliminamos el atributo de reenvio de correo del nuevo rol:

Set-ManagementRoleEntry Nombre_de_Rol\Set-Mailbox -Parameters DeliverToMailboxAndForward -RemoveParameter

Creamos una directiva nueva:

New-RoleAssignmentPolicy Nombre_de_Directiva

Damos de alta una asignación de rol de administración con el rol y la directiva creada:

New-ManagementRoleAssignment -Role Nombre_de_rol -Policy Nombre_de_directiva

Y por ultimo asignamos esta configuración al usuario que queramos:

Get-Mailbox usuario@dominio.com | Set-Mailbox -RoleAssignmentPolicy Nombre_de_directiva

 

Si todo va bien, cuando el usuario acceda a su Outlook Web App, podrá ver el enlace en la parte lateral derecha para reenviar el correo (imagen1), pero a diferencia de un usuario normal (imagen2), no aparecerán los campos necesarios para habilitar el reenvio (imagen3):

Imagen1:

Forwarding_link_owa

Imagen2:

Forwarding_owa

Imagen3:

Forwarding_owa_disabled

 

Hasta la Proxima.

Categories: IT, Office 365, Powershell Tags: , , ,

Mapear buzones en Outlook con Office365

viernes, 24 de mayo de 2013 Sin comentarios

exchange_2013

Buenas, en el post de hoy, os explico como mapear buzones de Office365 dentro de Microsoft Outlook, ya sean compartidos o personales.

Para muchos, la forma mas sencilla de hacerlo es mediante la propia interfaz de Microsoft Outlook, sin embargo a pesar de ser tedioso a la hora de hacerlo en un gran numero de usuarios, resulta ineficaz ya que se da al usuario la posibilidad de que pueda quitarlo sin consentimiento.

Para poder llevarlo a cabo, será necesario tener nuestro entorno preparado para la administración de Office365 con PowerShell y acceder a nuestra suscripción con credenciales de administración mediante el siguiente código:

$LiveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session

Una vez dentro, ejecutamos el siguiente comando (nótese el parámetro Automapping):

Add-MailboxPermission -Identity buzon_compartido@dominio.com -User usuario@dominio.com -AccessRights FullAccess -AutoMapping:$true

y obtendremos unos resultados parecidos a los siguientes:

automapping

De esta forma cuando accedamos a Microsoft Outlook, veremos el nuevo buzón mapeado justo debajo del nuestro:

automapping_outlook

A diferencia del método GUI de Outlook, si el usuario intenta acceder a la pantalla de las propiedades avanzadas de su cuenta de Exchange, no vera ningún buzón adicional que quitar:

Exchange_account_outlook_opts

 

Para eliminar un buzón mapeado, simplemente ejecutamos el siguiente comando:

Remove-MailboxPermission -Identity buzon_compartido@dominio.com -User usuario@dominio.com -AccessRights FullAccess

 

Hasta la próxima.

Repositorio de GuruXP – Abril 2013

sábado, 4 de mayo de 2013 Sin comentarios

Obtener suscripciones asociadas al partner en Office365 via PowerShell

sábado, 13 de abril de 2013 Sin comentarios

 ExchangeOnline

Hace mucho que no publico nada sobre Office365 con el uso de PowerShell, asi que hoy no solo escribiré sobre la gestión de Office365 con PowerShell, sino que además aportaré algo sobre la gestión de clientes como Partners.

Actualmente hay muchos partners que utilizan comandos de PowerShell para gestionar las suscripciones de clientes, sobretodo a nivel empresarial y poder aplicar cambios en masa, pero lo que no muchos saben es de la existencia de dos comandos:

Get-MsolPartnerContract y Get-MsolPartnerInformation

Así que pongamos en practica y demostremos lo que hace cada uno de estos comandos:

  • Lo primero (por supuesto) será disponer de nuestro entorno preparado para PowerShell y Office365.
  • Lo segundo será iniciar el Módulo de Microsoft Online Services Para Windows PowerShell (lo encontraremos en la lista de programas instalados)
  • Una vez iniciado el modulo, lanzamos la cadena de conexión e introducimos las credenciales de administrador como Partner:

$LIveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LIveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session

  • Después conectamos al servicio de MSOL con el siguiente comando e introducimos las credenciales de administrador como Partner nuevamente:

Connect-MsolService

  • Ya introducidas las credenciales y logados dentro del sistema, ejecutamos el siguiente comando para obtener una lista de las suscripciones que gestionamos como partners:

Get-MsolPartnerContract

El único problema de este comando es que no nos desvela mucha información que digamos, ya que lo que obtenemos es un identificador de Tenant:

Get-MsolPartnerContract

Asi que aquí entra el siguiente comando:

  • El siguiente comando nos permitirá obtener la información del id de tenant adquirido:

Get-MsolPartnerInformation -TenantId <id>

Este seria el resultado:

Get-MsolPartnerInformation

El problema de todo esto es que son dos comandos diferentes y no nos proporciona una gran utilidad si tenemos que ir una por una, asi que aprovechemos la funcionalidad de PowerShell que nos permite encadenar comandos y lancemos el siguiente comando:

Get-MsolPartnerContract | Get-MsolPartnerInformation

De esta manera nos devolverá la información que queremos sin necesidad de estar averiguando que id corresponde a que.

Espero que sea de utilidad para los partners.

Buzones inactivos indefinidos en Exchange Online

domingo, 17 de marzo de 2013 Sin comentarios

 

Cambiar-idioma-en

o365

Hoy nos encontramos con una novedad en Office365 Exchange Online y Exchange 2013, se trata de los buzones inactivos. Estos buzones son aquellos que dejan de tener una licencia y que a pesar de eliminar el usuario, mantienen los datos incluso de forma indefinida.

Los únicos requisitos que debemos tener en cuenta para poder conseguir esta funcionalidad son los siguientes:

  • Disponer de Exchange Online Plan 2 o de la funcionalidad adicional de Archivado Online.
  • Activar en cada buzón con antelación la función de «In-Place Hold»
  • Si hemos eliminado el usuario o el buzón sin activar la función, tendremos 30 días para recuperarlo y activar la función para posteriormente activar la función y proceder a su eliminación.

Asi que como se hace?.

  1. Lo primero será crear/convertir un buzón en inactivo, para ello tenemos que definir una retención indefinida o basada en tiempo
    1. Via GUI:
      1. Accedemos a la Exchange Administration Console (EAC)
      2. Pinchamos en Administracion de Cumplimiento
      3. Pinchamos en la pestaña «Suspensión y Exhibición de documentos electrónicos local«
      4. Pinchamos en el símbolo «+»
      5. Damos un nombre y una descripción a la directiva de retención y pinchamos en «siguiente«
      6. Seleccionamos los buzones que queremos incluir en la retención y pinchamos en «siguiente«
      7. Pinchamos nuevamente en «Siguiente» y Marcamos la casilla que pone «pausar….» y a continuación seleccionamos si queremos retener el contenido de manera indefinida o por cuanto tiempo en días queremos retenerlo.
      8. Pinchamos en «Finalizar«
    2. Via PowerShell:
      1. Preparamos nuestro entorno para usar powershell con Office365
      2. Ejecutamos el siguiente comando:

        New-MailboxSearch «Nombre_de_Retencion» -SourceMailboxes usuario@dominio.com -InPlaceHoldEnabled $true

  2. Lo segundo será eliminar el buzon que queremos mantener via el portal de administración de Office365 o bien ejecutando el comando de PowerShell «Remove-Mailbox»

Bien, ya tenemos nuestro buzón archivado y retenido de forma indefinida (o durante los días que hayamos especificado, asi que, como accedemos a este contenido?, via PowerShell:

  1. Ejecutamos el siguiente comando en PowerShell:

    New-MailboxSearch «Nombre_de_busqueda» -SourceMailboxes «Buzon_de_origen» -TargetMailbox «Discovery Search Mailbox» -IncludeUnsearchableItems -LogLevel Full

Tendremos los resultados en nuestro buzón de descubrimiento o «Discovery Mailbox»

Hasta la próxima!

Resolver problema con winmail.dat en Exchane Online

miércoles, 6 de marzo de 2013 Sin comentarios

 

Cambiar-idioma-en

ExchangeOnline

Hay veces (cada vez menos) que cuando enviamos un correo electrónico a un destinatario con un fichero adjunto (un pdf por ejemplo), y ese destinatario utiliza un cliente de correo antiguo como Outlook Express, en lugar de recibir el archivo adjunto recibirá otro en su lugar llamado winmail.dat. Bien pues no es un problema del servidor de destino, ni tampoco del antivirus, ni mucho menos del antispam, es un problema de configuración y compatibilidad que podemos resolver fácilmente.

Esta situación es debido al formato de encapsulamiento que utilizan los servidores de Exchange por defecto y del que Microsoft es propietario denominado TNEF o Transport Neutral Encapsulation Format (Formato de Encapsulación Neutro de Transporte) y que se encarga de encapsular las propiedades MAPI del mensaje.

Cuando enviamos el mensaje con un archivo adjunto, y este abandona nuestra organización de Exchange y llega a un cliente de correo que no es compatible con el formato de texto enriquecido de Outlook, el archivo adjunto es reemplazado por uno llamado winmail.dat.

Para evitar esta situación simplemente deberemos iniciar sesión en PowerShell con las credenciales de administración de nuestra suscripción de Office365 en nuestro Tenant (por supuesto tendremos que tener configurado el entorno para ello), y ejecutar el siguiente comando:

Set-RemoteDomain Default -TNEFEnabled $false

De esta manera los mensajes salientes a los dominios ajenos a nuestra organización no saldrán con ese formato de encapsulación. Espero que les sirva de mucho.

 

Restringir acceso a Exchange Online via Powershell

domingo, 3 de marzo de 2013 Sin comentarios

 

Cambiar-idioma-en

ExchangeOnline

Hace poco, me encontré con que una empresa quería restringir el acceso a ciertos usuarios para que únicamente pudiesen revisar el correo por medio de OWA.  Bien pues aquí os pongo unos cuantos CmdLets de PowerShell para gestionar los permisos de acceso de los usuarios de Exchange Online.

Por supuesto es necesario tener configurado nuestro entorno para poder utilizar PowerShell con Office365.

Una vez iniciada la sesión de PowerShell con nuestras credenciales de Administrador de la suscripción de Office365, podremos ejecutar los siguientes comandos:

Deshabilitar el acceso a OWA

set-CASmailbox usuario@dominio.com -OWAEnabled $false

Habilitar el acceso a OWA

set-CASmailbox usuario@dominio.com -OWAEnabled $false

Deshabilitar el acceso al buzón via IMAP

set-CASMailbox usuario@dominio.com -ImapEnabled $false

Habilitar el acceso al buzón via IMAP

set-CASMailbox usuario@dominio.com -ImapEnabled $true

Deshabilitar el acceso al buzón via POP

set-CASMailbox usuario@dominio.com -PopEnabled $false

Habilitar el acceso al buzón via POP

set-CASMailbox usuario@dominio.com -PopEnabled $true

Deshabilitar el acceso desde dispositivos móviles con Exchange ActiveSync

set-CASMailbox usuario@dominio.com -ActiveSyncEnabled $false

Habilitar el acceso desde dispositivos móviles con Exchange ActiveSync

set-CASMailbox usuario@dominio.com -ActiveSyncEnabled $true

Deshabilitar SMS para toda la organización

Set-OwaMailboxPolicy Default -TextMessagingEnabled $false

Habilitar SMS para toda la organización

Set-OwaMailboxPolicy Default -TextMessagingEnabled $true

Deshabilitar el acceso al buzón desde Outlook

Set-CASmailbox usuario@dominio.com –mapienabled $false

Habilitar el acceso al buzón desde Outlook

Set-CASmailbox usuario@dominio.com –mapienabled $true

Hasta aquí el post de hoy, espero que sea de utilidad.

 

Configurar horario en buzones de sala de Office365

domingo, 10 de febrero de 2013 Sin comentarios

ExchangeOnline

Hace unos días Publicaba una serie de posts sobre buzones de recursos:

 

Hoy explicare como establecer el horario en los buzones de sala via GUI y PowerShell. Este contenido no esta reunido en la serie anterior debido a que terminaría siendo demasiado larga y debe tener su propio post individual debido a su importancia.

Las organizaciones a menudo tienden a dar de alta buzones de sala para administrar la ocupación de dichas salas y para no tener mayores responsabilidades configuran dichas salas como autoadministradas para que acepten las peticiones siempre y cuando haya aforo disponible y no este ocupada; sin embargo, eso no evita que se ocupen salas fuera de horario y a veces eso no es admisible.

Comencemos como configurar el horario de los buzones de sala a través de la ECP (Exchange Control Panel).

  • Lo primero será acceder a nuestra suscripción via http://www.outlook.com/ecp/dominio.com
  • Después iremos a Administrar otro buzon en la parte superior izquierda y seleccionaremos el buzon de sala que queramos.
  • Una vez dentro de la configuración del buzon de sala, nos vamos a Configuración – Calendario

  • En este apartado podremos especificar el horario del buzon de sala.

 

A pesar de lo fácil que resulta esta forma, termina siendo un poco engorroso a la hora de asignar el horario en multiples salas o simplemente a la hora de modificarlos, por lo que es mejor hacerlo via PowerShell de la siguiente manera:

Set-MailboxCalendarConfiguration usuario@dominio.com -WorkingHoursStartTime 07:00:00 -WorkingHoursEndTime 15:00:00

Tened en cuenta que el formato de horas debe ser HH:MM:SS siempre en formato de hora militar.

 

Hasta el siguiente post!