Archivo

Archivo para la categoría ‘Powershell’

Restablecer contraseñas de usuarios en Office 365

miércoles, 19 de diciembre de 2012 Sin comentarios

office365

En el post de hoy, seguimos con Office 365 para administradores del servicio, en concreto explicaremos como restablecer la contraseña de un usuario.

Para poder hacer esto, tenemos dos formas:

  • La via bonita, por interfaz grafica (GUI)
  • La via menos bonita, por Powershell.

Empecemos explicando la primera, versión GUI:

  1. Iniciamos sesión en la consola de administración de Office365 e introducimos las credenciales de administración del servicio.
  2. Pinchamos en «Usuarios», dentro de la sección «Administración» justo en la parte izquierda de nuestra consola.
  3. Seleccionamos el/los usuario(s) que queramos restablecer la contraseña y pinchamos en «Restablecer la contraseña».
  4. Marcamos la opción de si queremos notificar a algún destinatario del cambio de la contraseña y seguimos el proceso.

user_mgmt

Por defecto, este método nos asignara una contraseña autogenerada que cumpla con la directiva de contraseñas para que el usuario entre en OWA y pueda establecer la contraseña que quiera. SIN ESTE PASO, EL USUARIO NO PODRA INICIAR SESION EN OUTLOOK.

Ahora toca explicar la versión Powershell:

logo-powershell

  1. Iniciamos sesión con nuestro entorno preparado de powershell, utilizando las credenciales de administración de nuestro Office365.
  2. Ejecutamos el siguiente cmdlet:

Set-MsolUserPassword -UserPrincipalName usuario@contoso.com -NewPassword «Nu3va.Password» -ForceChangePassword $false

Como podemos ver, las opciones de «NewPassword» y «ForceChangePassword» nos permiten dar un paso mas a la hora de restablecer las contraseñas ya que con ellas podremos establecer directamente la contraseña que queramos y establecer si queremos que sea una contraseña temporal para que el usuario pueda cambiarla por OWA respectivamente.

En definitiva, no es solo cuestión de gustos sino de ventajas… En este caso Powershell nos permite personalizar la contraseña que queremos establecer e incluso indicar si es necesario que el usuario la cambie o no, por lo que si establecemos el valor en $false, indicaremos que la contraseña es la definitiva y que el usuario ya podrá usarla en Outlook sin necesidad de pasar por OWA.

Personalmente considero que powershell nos agilizara mucho mas el proceso, sin embargo no siempre tenemos a mano una consola de powershell, o si? ;)

Hasta otra!

 

Esconder usuario de la lista global de direcciones con Powershell

martes, 18 de diciembre de 2012 Sin comentarios

 

Cambiar-idioma-en

logo-powershell

Buenas!

Hoy veremos como esconder un usuario de la lista global de direcciones o Global Address List en nuestro Office365.

Sabemos que se pueden esconder listas de distribución o grupos de seguridad de la GAL desde la GUI, pero para los usuarios o buzones creados, no existe esa opción en la interfaz grafica, por lo que tendremos que tirar nuevamente de nuestro Powershell…

hidden_group_opt

Lo primero será preparar nuestro entorno si no lo tenemos ya para conectar con Microsoft Online Services.

Después de iniciar sesión en powershell con nuestras credenciales de Office365, ejecutamos el siguiente comando:

 Set-Mailbox -Identity usuario@contoso.com -HiddenFromAddressListsEnabled $true

Una vez ejecutado el comando, ya tendremos el buzon o usuario oculto en la GAL :)

 

Eliminar el contenido de los contactos en Exchange Online

lunes, 17 de diciembre de 2012 Sin comentarios

ExchangeOnline

Hace poco leí un articulo donde se indicaba como eliminar contactos en un Exchange 2007 y 2010 mediante un script de Powershell, pero no era compatible con Exchange Online.

Bien, pues después de darle varias vueltas, he conseguido hacerlo de tal forma que valga para Exchange Online mediante el uso de Powershell y EWS.

Lo primero indicar que como requisito, es primordial instalar la API de EWS, ya que sin eso no podremos trabajar con el script.

Voy comentando los trozos del script:

param([string]$EmailAddress,[string]$Username,[string]$EwsUrl,[string]$EWSManagedApiDLLFilePath);
$Password = cat C:\O365_Passw.txt

En esta cabecera indicamos la sintaxis que utilizara nuestro script: Buzon (E-Mail), Usuario, Ruta de EWS, Ruta de la API de EWS, y finalmente le indicamos que use como contraseña la que este almacenada en el txt indicado (c:\O365-Passw.txt). Este archivo solamente debe contener la contraseña deseada. (es solo una vuelta que le he dado al código con la finalidad de que si programamos la tarea, no aparezca en los valores de la misma).

 

# Comprobar E-Mail
if (!$EmailAddress) {     throw «El parametro E-Mail debe especificarse»; } if (!$EmailAddress.Contains(«@»)) {     throw «El parametro E-Mail no parece ser valido»; }

# Comprobar si la API de EWS esta presente
if (!$EWSManagedApiDLLFilePath) {     $EWSManagedApiDLLFilePath = «C:\Program Files\Microsoft\Exchange\Web Services\1.2\Microsoft.Exchange.WebServices.dll» }
if (!(Get-Item -Path $EWSManagedApiDLLFilePath -ErrorAction SilentlyContinue)) {
throw «No se ha encontrado la API de EWS en $($EWSManagedApiDLLFilePath). Descargala desde http://www.microsoft.com/download/en/details.aspx?id=28952«; }

Comprobamos que se haya introducido una dirección de E-Mail valida en la sintaxis y que la API de EWS esta instalada, de lo contrario nos indicara que debemos descargarla e instalarla.

 

 

# Cargar la API de EWS
[void][Reflection.Assembly]::LoadFile(«C:\Program Files\Microsoft\Exchange\Web Services\1.2\Microsoft.Exchange.WebServices.dll»);

# Crear objeto de servicio
if ($Exchange2007) {     $service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2007_SP1) }
else {     $service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP1) }

# Establecer credenciales si se han especificado o usar el usuario actual
if ($Username -and $Password) {
if ($Domain)     {         $service.Credentials = New-Object  Microsoft.Exchange.WebServices.Data.WebCredentials($Username,$Password,$Domain);     }
else {
$service.Credentials = New-Object  Microsoft.Exchange.WebServices.Data.WebCredentials($Username,$Password);     }     }
else {     $service.UseDefaultCredentials = $true; }

# Establecer URL de EWS si se ha especificado, o usar autodiscover de lo contrario.
if ($EwsUrl) {
$service.URL = New-Object Uri($EwsUrl); }
else {
try {         $service.AutodiscoverUrl($EmailAddress);     } catch {         throw;     } }

Cargamos la API de EWS, detectamos la versión de Exchange del servidor, utilizamos credenciales suministradas o utilizamos el usuario actual, y establecemos la URL de EWS. Esta URL no es otra mas que la del servidor de Exchange/ews/Exchange.asmx (p.ej: https://amsprd0610.outlook.com/ews/Exchange.asmx)

 

# Efectuar una prueba – obtener la carpeta de contactos predeterminada.
if ($Impersonate) {
$service.ImpersonatedUserId = New-Object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SmtpAddress, $EmailAddress); } try {     $ContactsFolder = [Microsoft.Exchange.WebServices.Data.ContactsFolder]::Bind($service, [Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Contacts); } catch {     throw; }

Establecemos un vinculo con la carpeta de contactos y hacemos el enlace.

 

$ContactsFolder.Empty([Microsoft.Exchange.WebServices.Data.DeleteMode]::MoveToDeletedItems, $true);

Procedemos a eliminar el contenido enviándolo a la carpeta de elementos eliminados. En este ultimo comando, podemos especificar varias opciones dentro del código:

  • MoveToDeletedItems: los enviara a la carpeta de elementos eliminados.
  • HardDelete: los eliminara directamente sin dejar copia en ningún sitio.
  • SoftDelete: los eliminara, pero únicamente se podrán recuperar a través de «recuperar elementos eliminados» en nuestro Outlook.

 

 

Una vez explicado el script, podeis descargarlo de AQUI. Su forma de ejecución será algo como esto:

./delete_contacts.ps1 -EmailAddress usuario@dominio.com -Username usuario@dominio.com -EwsUrl https://servidor_exchange/EWS/Exchange.asmx

 

Hasta otra!

 

Averiguar quien usa dispositivos Apple en nuestro Office365

domingo, 16 de diciembre de 2012 Sin comentarios

A día de hoy, no es ninguna sorpresa la cantidad de bugs que tienen los dispositivos de Apple, y de cuanto énfasis ponen en resolverlo lo antes posible… Pues hace relativamente poco, Apple sacaba su nueva versión de IOS 6, y con ella una bug que pone de cabeza nuestra información (mas info AQUI) y que se ha solucionado en la versión 6.01 de IOS.

Bien pues no vendría nada mal, hacer una pequeña auditoria de nuestra organización en Office 365 para saber quien utiliza dispositivos de Apple para acceder a la información, que modelo y que versión de IOS.

Para ello Steve Goodman, ha publicado un pequeño script en Powershell que nos permite recuperar esa información en pantalla y exportarla en CSV para poder tratarla en Excel por ejemplo.

Podeis descargarlo desde aquí.

El Script de Powershell ha de ejecutarse una vez iniciada sesión en Online services con Powershell por lo que tendrás que tener preparado tu entorno para ello. La forma de ejecutarlo será algo así:

.\Export-iOSDeviceStatistics.ps1 -OutputCSVFile C:\output.csv

Y el resultado seria algo asi:

exchange_ios_stats

Y el archivo generado:

exchange_ios_stats2

 

Hasta otra!

Importar contactos a Office365-Exchange Online desde CSV via Powershell

miércoles, 12 de diciembre de 2012 Sin comentarios

Hoy toca post rapidito pero suculento, especialmente para migraciones.

Haremos una importación de contactos que previamente hayamos exportado a formato CSV, utilizando powershell  a nuestro entorno de Exchange Online en Office 365.

Lo primero, preparar el entorno para conectarnos a nuestra suscripción via Powershell si no lo tenemos ya…

Una vez hayamos conectado a nuestra suscripción, introducimos el siguiente comando:

Import-ContactList -CSV -CSVData ([System.IO.File]::ReadAllBytes(«C:\carpeta_donde_esta_el_CSV\archivo.csv«)) -Identity buzon_de_destino 

Y a continuación nos importara todo el contenido a la carpeta de contactos del buzon de destino. En teoría el sistema debería reconocer cada uno de los campos del CSV e importarlos en el campo correspondiente, pero si no fuera el caso, os pongo un listado del orden de los campos que utiliza tanto Outlook como Exchange Online y asi poder hacerlos coincidir en el CSV.

«Title»,»Nombre»,»Segundo nombre»,»Apellidos»,»Suffix»,»Organización»,»Department»,»Puesto»,»Calle del trabajo»,»Calle del trabajo 2″,»Calle del trabajo 3″,»Ciudad de trabajo»,»Provincia o estado de trabajo»,»Código postal del trabajo»,»País o región del trabajo»,»Home Street»,»Home Street 2″,»Home Street 3″,»Home City»,»Home State»,»Home Postal Code»,»País o región del domicilio»,»Otra calle»,»Otra calle 2″,»Otra calle 3″,»Otra ciudad»,»Otra provincia o estado»,»Otro código postal»,»Otro país o región»,»Assistant’s Phone»,»Business Fax»,»Teléfono del trabajo»,»Business Phone 2″,»Devolución de llamada»,»Car Phone»,»Número de centralita de la organización»,»Home Fax»,»Particular»,»Home Phone 2″,»ISDN»,»Mobile Phone»,»Otro fax»,»Otro teléfono»,»Pager»,»Teléfono principal»,»Radioteléfono»,»Número de teletipo»,»Télex»,»Account»,»Aficiones»,»Anniversary»,»Apartado postal de la dirección del trabajo»,»Apartado postal de la dirección personal»,»Assistant’s Name»,»Birthday»,»Categorías»,»Confidencialidad»,»E-mail Address»,»E-mail Type»,»Nombre de pantalla de correo electrónico»,»Dirección de correo electrónico 2″,»Tipo de correo electrónico 2″,»Nombre de pantalla de correo electrónico 2″,»Dirección del correo electrónico 3″,»Tipo de correo electrónico 3″,»Nombre de pantalla de correo electrónico 3″,»Facturación»,»Género»,»Government ID Number»,»Hijos»,»Initials»,»Internet Free Busy»,»Keywords»,»Kilometraje»,»Language»,»Location»,»Nombre del director»,»Notes»,»Office Location»,»Organizational ID Number»,»Otro apartado postal»,»Página web»,»Prioridad»,»Private»,»Profesión»,»Remitido por»,»Servidor de directorio»,»Spouse»,»Usuario 1″,»Usuario 2″,»Usuario 3″,»Usuario 4″

Hasta otra!

 

Crear un buzon compartido en Office 365

lunes, 10 de diciembre de 2012 Sin comentarios

Seguimos con la serie de Office 365…

Empecemos indicando que es un buzon compartido, sus ventajas y desventajas…

Un buzon compartido (Shared Mailbox) es un buzon cuya finalidad es la de compartir elementos en la organización o departamento. Elementos como correo, contactos, tareas o citas de calendario.

Este tipo de buzon, es especialmente útil para los siguientes escenarios:

  • Tenemos un departamento desde el que queremos hacer seguimiento de los mensajes que se envíen y reciban a dicho departamento.
  • Tenemos la necesidad de disponer de un pool de contactos, tareas o calendarios compartidos.
  • Toda la información del departamento debe salir de dicho buzon y las cuentas personales solo se utilizan para mensajes internos.
  • Queremos gestionar quien tiene acceso a dicho departamento desde fuera, incluso desde OWA.

Los beneficios de un buzon compartido son entre otras:

  • No ocupa licencia hasta los 5Gb de almacenamiento por lo que no hay que pagar por ello, a partir de 5Gb deberemos asignar una licencia de Exchange Online Plan 1 (minimo).
  • No existen Hardlimits como en un buzon normal, como limite de conexiones y elementos en una carpeta.
  • El acceso al buzon se gestiona por grupos de seguridad, por lo que podemos gestionar los usuarios que tienen acceso a dicho buzon solo con incluirlos o excluirlos del grupo de seguridad.
  • El buzon dispone de una dirección de correo electrónico por lo que podremos recibir correos electrónicos directamente en el, y podemos gestionar si queremos recibir correos de dentro de la organización o de dentro y fuera de la misma como en un buzon normal.
  • Podemos anexar el buzon compartido en el entorno de OWA sin necesidad de cerrar sesión y abrir otra.

Los inconvenientes del mismo (que yo caiga) son:

  • No permite la característica de archivado de correo sin asignarle una licencia. De igual forma pasa con la característica de retención por juicio.
  • Es obligatorio que los usuarios que accedan al buzon compartido, tengan una licencia asignada.
  • Solo permite 5Gb de almacenamiento por lo que no se recomienda su uso para archivado de correo.

 

Para poder crear un buzon compartido en nuestra suscripción actual de Office 365 (esto cambiara con la nueva versión que esta por venir) tendremos que hacer uso de powershell, aunque disponemos de una versión GUI desarrollada por Microsoft, pero aun asi necesitaremos de powershell para lanzar la herramienta.

Expliquemos primero lo que necesitamos y como hacerlo para el modo powershell:

Creación de un grupo de seguridad:

  • Pinchamos en «Grupos de Distribución» y le damos a «Nuevo«. Rellenamos los campos, marcamos la opción de «Convertir este grupo en un grupo de seguridad«, y configuramos el grupo con las opciones de seguridad que queramos, incluimos los usuarios del departamento y le damos a guardar.

Creación del buzon compartido:

  • Accedemos a nuestra suscripción via powershell.
  • Creamos el buzon compartido:

New-Mailbox -Name «Shared Mailbox Name» -Alias SharedMailboxAlias -Shared

  • Establecemos la quota y los limites de envio del buzon compartido:

Set-Mailbox corpprint -ProhibitSendReceiveQuota 5GB -ProhibitSendQuota 4.75GB -IssueWarningQuota 4.5GB

  • Ejecutamos el siguiente comando para otorgar al grupo de seguridad acceso total al buzon compartido (es necesario para que los usuarios del grupo de seguridad puedan acceder al buzon compartido):

Add-MailboxPermission «Shared Mailbox Name» -User SharedMailboxSecGroup -AccessRights FullAccess

  •  Ejecutamos el siguiente comando para que los usarios del grupo de seguridad puedan enviar en nombre del buzon compartido:

Add-RecipientPermission «Shared Mailbox Name» -Trustee SharedMailboxSecGroup -AccessRights SendAs

Ahora expliquemos lo que necesitamos y como hacerlo para el modo GUI:

Ya que hemos explicado lo como crear un grupo de seguridad y como tener preparado el entorno de powershell para Online Services, y descargar y extraer el contenido no presenta una mayor complicación… procedemos a explicar el entorno grafico:

 

En realidad poco hay que explicar de este entorno, rellenamos los campos y le damos a crear ;) .Con esta herramienta conseguimos lo mismo que el código arriba descrito en powershell.

En resumen, hemos creado un buzon compartido de ambas formas posibles (por los momentos) y sin complicaciones. Hasta otra!

Anexar buzones en Exchange Online y Outlook con Powershell

miércoles, 5 de diciembre de 2012 Sin comentarios

Buenas a todos, en el post de hoy vamos a indicar como podemos anexar buzones (compartidos y no compartidos) a entornos de Microsoft Outlook en nuestra organización. Esto nos será especialmente útil para poder publicar en Microsoft Outlook un buzon adicional al personal sin necesidad de desplazarnos y/o conectarnos de forma remota al pc del usuario, permitiendo asi, que el usuario pueda seguir trabajando sin interrupciones.

Ojo!, esto no hará que se le habilite al usuario la dirección para elegir a la hora de enviar correos en la selección de cuenta.

Para poder hacer esto, haremos uso de la herramienta PowerShell para acceder a la consola de administración de Microsoft Office 365 y poder la secuencia necesaria, por lo que será necesario que el entorno este preparado, si no lo está o no sabes como, aquí te explico como.

Una vez tengamos el entorno preparado, procedemos a conectarnos al servicio de la manera tradicional:

$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 de introducir el usuario y contraseña de administración de nuestra suscripción de Office 365, simplemente introducimos la siguiente línea:

Add-MailboxPermission -Identity SharedMailbox@contoso.com -User User@contoso.com -AccessRights FullAccess -AutoMapping:$true

De esta manera indicamos que el usuario User@contoso.com tiene acceso al buzon compartido SharedMailbox@contoso.com y que además mediante la función AutoMapping le indicamos que se le anexe dentro de Microsoft Outlook.

Sin embargo debemos tener en cuenta que una vez hecho esto, el archivo .ost empezara a almacenar todos los datos del buzon personal y de los buzones anexados, y a pesar de que Microsoft no recomienda que se trabaje en modo online por cuestiones de rendimiento, probablemente no podamos permitirnos que nuestras estaciones de trabajo alberguen una copia de cada uno de los buzones anexados de manera inicial o simplemente porque nuestra conexión sea demasiado lenta como para descargar un buzon compartido de 17Gb :s .

Para evitar esta situación, en nuestro Outlook accederemos a nuestra configuración de cuentas y entraremos en la configuración de la cuenta de Microsoft Exchange.

Una vez dentro de la configuración, nos vamos a la pestaña que pone avanzado y deshabilitamos la opción de «Descargar las carpetas compartidas» y le daremos a aceptar. Nos pedirá cerrar y abrir Microsoft Outlook nuevamente para aplicar los cambios y listo.

Cambiar-idioma-en

En realidad lo que hacemos con esto es que nuestro buzon personal se mantenga en cache almacenando los datos en nuestro .ost y que el buzon anexado trabaje de forma online, por lo que será un entorno hibrido para nuestro Microsoft Outlook. ;).

Si lo que queremos es quitar de Microsoft Outlook el buzon anexado porque ya no haga falta o por el motivo que sea, entonces solo introduciremos este comando:

Remove-MailboxPermission -Identity SharedMailbox@contoso.com -User User@contoso.com -AccessRights FullAccess

Una vez hecho esto, al usuario ya no le aparecerá el buzon anexado.

Teóricamente, no hace si quiera falta que los usuarios tengan que cerrar y abrir Microsoft Outlook nuevamente.

Y hasta aquí el post de hoy :)

Establecer dirección principal de envío en Exchange Online

lunes, 26 de noviembre de 2012 Sin comentarios

El post de hoy, será cortito pero seguro que útil para muchos…

La situación es la siguiente:

-Disponemos de uno o más usuarios con varias direcciones de correo dentro de nuestra organización. Éstas pueden ser del mismo o de distinto dominio… (alias)

-Nos piden que la dirección de correo por la que se envíe por defecto sea distinta que la de los demás, pero sin cambiar su usuario por política de IT.

-Asi mismo nos piden que conserve todas y cada una de las direcciones de correo asignadas al mismo.

Veamos un ejemplo de la situación:

-La organización contoso tiene varios dominios asociados en su cuenta de Exchange online, contoso.es, contoso.org y por supuesto contoso.com.

-Existen grupos de usuarios bajo @contoso.es, otros bajo @contoso.org y todos bajo@contoso.com.

-El usuario jgarcia deberá tener aparte de su dirección general jgarcia@contoso.com la dirección jgarcia@contoso.es y aunque su usuario obligatoriamente deberá ser jgarcia@contoso.com su dirección de envio predeterminada deberá ser jgarcia@contoso.es

Problema que nos encontramos:

-Cuando agregamos un dominio al servicio y configuramos una segunda dirección de correo, no tenemos la opción de establecer ésta como predeterminada bajo entorno gráfico:

(Si pulsamos en «editar» solo nos da la opción de cambar la dirección y dominio que esté disponible…)

Solución:

Para poder abordar el problema y poder resolverlo, tendremos que hacerlo via PowerShell, por lo que tendremos que tener el sistema preparado para conectarnos por esta via… (si no sabes cómo, pincha aquí).

Una vez dentro de nuestra sesión, tenemos que ejecutar el siguiente código:

Set-Mailbox jgarcia@contoso.com -EmailAddresses SMTP:jgarcia@contoso.es, jgarcia@contoso.com, jgarcia@contoso.onmicrosoft.com, jgarcia@contoso.org

Si nos damos cuenta, en realidad lo que estamos haciendo es decirle al sistema, que el usuario jgarcia@contoso.com (que es el nombre de usuario), tendrá las siguientes direcciones de correo electrónico, dejando por defecto la primaria (jgarcia@contoso.es).

OJO: es importantísimo que se mantengan el resto de direcciones (sobretodo la que termina en @contoso.onmicrosoft.com) ya que si se nos queda alguna por el camino, es como indicarle al sistema que esa dirección no es de ese usuario, de hecho se elimina y habría que volver a crearla…

Resultado:

Si volvemos a nuestro panel de administración gráfico, y entramos en la administración del usuario jgarcia, veremos que la dirección de correo principal ahora cambia a jgarcia@contoso.es  respetando su nombre de usuario que seguirá siendo jgarcia@contoso.com .

Espero que sea de utilidad para muchos.

Enviar como (SendAs) y enviar en nombre de (SendOnBehalfOf) con Exchange Online y Powershell

viernes, 23 de noviembre de 2012 Sin comentarios

Cambiar-idioma-en

 

Hay muchas veces en que en nuestros entornos administrados nos exigen que no solo hayan correos departamentales y los reciban varios usuarios (Grupos de Distribución), sino que además estos respondan o envíen correos desde el departamento y no desde el buzon personal… Para ello Microsoft ha proporcionado un par de Cmdlets que podemos utilizar mediante Powershell para aportar una solución: SendAs y SendOnBehalfOf.

Así que empecemos por destacar las diferencias de estos:

SendAs: Nos permite enviar correo bajo el correo Departamento@empresa.com desde el buzon usuario@empresa.com , de esta forma el destinatario recibirá el correo con el nombre del departamento como remitente.

Este método es realmente útil para situaciones en las que disponemos dos direcciones de correo personales y no queremos utilizar una licencia adicional…

También si lo que queremos es que no se utilicen los buzones personales para enviar correo fuera de la organización.

SendOnBehalfOf: Nos permite enviar correo en nombre de Departamento@empresa.com mediante usuario@empresa.com, de esta forma el destinatario recibirá un correo de “Usuario en nombre de departamento» (P.e: John Summer en nombre de Company ITSupport).

Este método es útil cuando lo que queremos es que el destinatario sepa que persona del departamento escribe en nombre de un departamento concreto de la organización y al responder, los correos lleguen al departamento en general.

Bueno una vez dicho esto, vamos al proceso de ambos. Tengamos en cuenta que antes de ejecutar los siguientes comandos, deberemos haber preparado el entorno de powershell para Office 365 si no lo tenemos ya…

SendAs

  • Para un solo usuario:

$LIveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LIveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session
Add-RecipientPermission departamento@empresa.com -AccessRights SendAs -Trustee usuario@empresa.com -Confirm:$false

  • Para un Grupo de Seguridad/Distribución:

Add-RecipientPermission departamento@empresa.com -AccessRights SendAs -Trustee grupo@empresa.com -Confirm:$false

  • Para ver los permisos de SendAs aplicados a la organización:

Get-RecipientPermission | where {($_.Trustee -ne ‘nt authority\self’) -and ($_.Trustee -ne ‘null sid’)}

  • Para ver los permisos de SendAs aplicados a un usuario concreto:

Get-RecipientPermission –Trustee Usuario@empresa.com

  • Para revocar permisos de SendAs concretos:

Remove-RecipientPermission departamento@empresa.com -AccessRights SendAs –Trustee usuario@empresa.com

 

SendOnBehalfOf

  • Para un solo usuario:

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

Import-PSSession $Session

Set-DistributionGroup Departamento@empresa.com -GrantSendOnBehalfTo usuario@empresa.com

El único problema de este código es que cuando volvamos a ejecutarlo para otro usuario dentro del mismo departamento, éste reemplazará los permisos del anterior y será el único que pueda enviar correos en nombre del departamento y por lo tanto es altamente recomendable hacerlo de la siguiente manera:

$a = Get-DistributionGroup departamento@empresa.com

$b = Get-User usuario@empresa.com

$a.GrantSendOnBehalfTo += $b.DistinguishedName

Set-DistributionGroup departamento@empresa.com -GrantSendOnBehalfTo $a.GrantSendOnBehalfTo

Get-DistributionGroup departamento@empresa.com | fl name,grant* > ListarQuienEnviaEnNombreDeEnBuzon.txt

De esta manera podremos ir agregando usuarios de forma concatenada, pero sin embargo requerirá el que ejecutemos el código cada vez que queramos agregar un usuario por lo que la tarea de administración será mayor…

  • Para un Grupo de Seguridad/Distribución:
    Esta es la mejor opción, nos ahorrará tiempo de administración evitando el tener que tirar líneas de powershell innecesarias cada vez que entre un usuario al departamento…

$a = Get-DistributionGroup departamento@empresa.com

$b = Get-DistributionGroup «Grupo de Distribucion»

$a.GrantSendOnBehalfTo += $b.DistinguishedName

Set-DistributionGroup departamento@empresa.com -GrantSendOnBehalfTo $a.GrantSendOnBehalfTo

Get-DistributionGroup departamento@empresa.com | fl name,grant* > ListarQuienEnviaEnNombreDeEnBuzon.txt

He agregado en la ultima línea «> ListarQuienEnviaEnNombreDeEnBuzon.txt» de forma que me informe de que usuarios ha agregado al departamento y asi pueda enviarlo como informe a quien haya hecho la solicitud.

 

Una vez hecho esto, el usuario solo deberá especificar la dirección de correo desde la que quiere enviar correo mediante OWA o Microsoft Outlook.

En Microsoft Outlook (si el usuario no dispone de más de una cuenta) deberemos habilitar el campo «De:» en «mensaje nuevo» – «Opciones» – «Mostrar De:» y entonces podremos indicar la dirección desde la que queremos enviar escribiéndola al pinchar en «Escribir otra dirección de correo eletronico»

En OWA pasa lo mismo, y para habilitar el campo procedemos de la misma manera:

 

Deshabilitar caducidad de contraseñas en Office 365

miércoles, 21 de noviembre de 2012 Sin comentarios

 

Cambiar-idioma-en

 

Para comenzar, he de decir que sólo es posible mediante Powershell, por lo que deberemos tener configurado nuestro entorno para ello, si no sabes como puedes consultarlo en mi anterior post AQUI.

Si ya tienes el entorno configurado entonces podemos proceder a tirar el siguiente código:

  • $LiveCred = Get-Credential (adquirimos credenciales para conectarnos al servicio)
  • $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection (Configuramos el tipo de sesión)
  • Import-PSSession $Session (importamos la sesión del servidor de nuestro servicio)
  • Connect-MsolService (conectamos con Online services y metemos otra vez credenciales de administrador)
  • Get-MsolUser -UserPrincipalName usuario@dominio.com | Set-MsolUser -PasswordNeverExpires $true (especificamos que el usuario usuario@dominio.com obtiene la propiedad de nunca caduca la contraseña)

Si por el contrario, queremos que se aplique a todos los usuarios creados en el servicio, entonces sustituimos el ultimo comando con los siguientes:

  • Get-MsolUser | Set-MsolUser -PasswordNeverExpires $true
  • Get-MsolUser | Select UserPrincipalName, PasswordNeverExpires

 

Espero que sea de utilidad y que sea fácil para cualquiera ;)