Archivo

Archivo para la categoría ‘Microsoft’

Migración de Exchange 2010 SP3 Híbrido a Exchange 2013 SP1 Híbrido (III)

lunes, 2 de junio de 2014 Sin comentarios

Hola de nuevo,

El pasado fin de semana procedimos a realizar la migración de los datos de usuario entre Exchange 2010 SP3 y Exchange 2013 SP1.

El resumen de tareas es el siguiente:

  • Modificar la publicación del OWA a través de TMG para que apuntase al nuevo entorno, tal como se describe en Publishing Exchange Server 2013 using TMG.
  • Después de validar el acceso, se procede a cambiar las ExternalURL de los siguientes servicios: autodiscover, ECP, OWA, EWS, ActiveSync, OAB y PowerShell
  • Con estos cambios realizados, procedemos a mover todos los buzones entre servidores (este paso puede llevar bastante rato)
  • Finalizada la migración de buzones, desinstalamos roles de los servidores Exchange 2010 que no sean necesarios. En mi caso, el de CAS, quedando la foto final de la arquitectura asíimage

      ¿Qué pasos quedan por realizar a día de hoy?

      En esencia 2 que son realmente tres:

      – Desmontar el DAG y desinstalar el rol de MBX de Exchange 2010
      – Generar de nuevo la suscripción con el Edge Server. Actualizar la hibridación de Exchange 2010 a Exchange 2013.
      Os mantengo informados de esto último, que será lo más interesante, la verdad
        Saludos,
        Marc

      Migración de Exchange 2010 SP3 Híbrido a Exchange 2013 SP1 Híbrido (II)

      jueves, 29 de mayo de 2014 Sin comentarios

      Hola,

      Seguimos con la migración y sus curiosidades.

      Ya he instalado un CAS y un MBX 2013 en un entorno 2010 (después de preparar el AD en la entrada de ayer).

      He instalado el certificado y configurado correctamente las entradas DNS para el nuevo entorno. También he “corregido” las InternalURL de los servicios OWA y ECP, y la AutodiscoverInternalUri para que no se quejaran al accederse por HTTPs (cosas de los Split DNS)

      Pues bien, una de las cosas buenas que tiene Exchange 2013 respecto a versiones anteriores, es que los accesos a OWA y ECP se redireccionan automáticamente en función de en qué MBX tengas al usuario.

      Esto está genial porque te evita problemas en la publicación de estos servicios de cara a los usuarios.

      Si tecleo https://InternalCAS2013/OWA y hago login con un usuario que está en un 2010, automáticamente se abre el MBX del 2010 sin modificar la URL del OWA.

      image

      Pero tiene una contrapartida, digamos, interesante. Si quiero acceder al ECP… también me envía a la versión 2010!!!!! Confused smile

      Esto complica un poco la administración del entorno desde la consola web (sigue funcionando perfectamente desde PowerShell)

       

      image

       

      La solución, como siempre, en la KB de Microsoft. Basta aplicar lo que se dice en

      Exchange 2013 Redirects to Exchange 2010 for OWA and ECP, http://support.microsoft.com/kb/2931385/en-us

      y asunto arreglado.

      image

       

      Continuará…

       

      Saludos,

      Marc

      Migración de Exchange 2010 SP3 Híbrido a Exchange 2013 SP1 Híbrido (I)

      jueves, 29 de mayo de 2014 Sin comentarios

      Hola,

      Hace ya más de un mes avanzaba sobre un futuro artículo de migración de Exchange 2010 a 2013 en un entorno híbrido.

      Esta es la primera entrega.

      Como sabéis, siempre que instalamos un Service Pack de Exchange (desde el SP2 de la versión 2010) toca actualizar el schema de nuestro forest y preparar el domain. En teoría, con un

      setup /prepareAD /IAcceptExchangeServerLicenseTerms

      debería ser suficiente. Verdad?

      Bien, pues en un entorno híbrido esto no funciona y hay que hacer alguna cosa más.

      clip_image001

      Lo primero, descargarse en un fichero XML la configuración de nuestro tenant. Esto se hace desde PowerShell (obvio) en un equipo con el módulo de MSOnline instalado

      Get-OrganizationConfig | Export-Clixml -Path C:\MyTenantOrganizationConfig.XML

      Una vez tenemos el fichero en cuestión, hemos de escribir

      Setup /PrepareAD /IAcceptExchangeServerLicenseTerms /TenantOrganizationConfig:C:\MyTenantOrganizationConfig.XML

      Si todo va como debe…

      clip_image002

      Debería acabar con un Ok

      clip_image002[4]

      Y a partir de aquí, lanzar una instalación normal de nuestros nuevos servidores Exchange 2013 SP1

      Continuará… Winking smile

       

      Saludos,

      Marc

      PowerShell: Creación de contactos en Exchange Online desde un CSV

      jueves, 15 de mayo de 2014 Sin comentarios

      Hola,

      Si ayer os publicaba qué script usé para dar de alta a usuarios en Office 365, hoy os pongo otro script para la generación de Contactos.

      Usamos, como en el caso anterior, un formato concreto de los datos a cargar desde el CSV, y es

      Name Nombre del usuario (campo invisible, por cierto)
      DisplayName Nombre para mostrar en Exchange Online
      ExternalEmailAddress Dirección de correo del contacto
      FirstName Nombre
      LastName Apellido
      Alias Alias del usuario, campo obligatorio.

       

      El código no puede ser más sencillo, y es éste:

      # Solicitud de credenciales para conectar a Office 365

      $cred = Get-Credential

       

      #Creación de sesión para conectar a Exchange Online

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

       

      #Importación de la sesión Exchange Online

      Import-PSSession $Session

       

      #Petición de parth del fichero donde están los contactos

      [void] [System.Reflection.Assembly]::LoadWithPartialName(«System.Windows.Forms»)

      $ofd = New-Object System.Windows.Forms.OpenFileDialog

      $ofd.ShowHelp=$true

      if($ofd.ShowDialog() -eq «OK») { $ofd.FileName }

      $Fichero = $ofd.Filename

       

      #Alta de contactos en Office 365 de modo recursivo a través del fichero CSV

      Write-Host «Inicio de la carga de contactos en Office 365»

       

      Import-Csv -Path $Fichero | ForEach-Object {

          New-MailContact -Name $_.Name -DisplayName $_.Name -ExternalEmailAddress $_.ExternalEmailAddress -FirstName $_.FirstName -LastName $_.LastName -Alias $_.Alias

       

      }

       

       

      #Fin de la carga de contactos

      Write-Host «Fin de la carga de contactos en Office 365»

       

      #Cerramos la sessión con Exchange Online

      Remove-PSSession $Session

       

      Saludos,

      Marc

      PowerShell: Alta masiva de usuarios en Office 365 desde un CSV

      miércoles, 14 de mayo de 2014 Sin comentarios

      Hola a todos,

      No sé si trabajáis con Office 365 y os gusta PowerShell. Particularmente, no suelo usar mucho el segundo pero de vez en cuando (algún proyecto) lo requiere y, aun sabiendo que por Internet está lleno de scripts, me gusta montármelos yo mismo.

      En este caso, he creado un script que ayuda a realizar la carga de usuarios desde un CSV hacia un tenant de Office 365 completamente cloud.

      Los parámetros de entrada en el CSV son:

      FirstName Nombre del usuario que vamos a crear
      LastName Apellido del usuario
      DisplayName Nombre que se mostrará en Office 365
      UserPrincipalName Login name, o cómo el usuario se validará en Office 365
      UsageLocation Ubicación del usuario. Importante o no podremos dar de alta correctamente al usuario.
      Para España, el código es ES
      Office Oficina de nuestro usuario
      Department Departamento de trabajo del usuario
      PhoneNumber Teléfono al que localizar a nuestro usuario

      Veréis que en el código se establece un valor por defecto a la variable –Password.

      Esto se hace así ya que por defecto se genera una contraseña aleatoria que tendríamos que guardar de algún modo. Si la establecemos por defecto, y por defecto caduca, el usuario pondrá la suya en el primer inicio de sesión.

      Veréis que guardo en la variable $Licencias los valores de los diferentes tipos de licencias. Puede que en vuestro caso sólo tengáis un valor pero en el mío había 2 diferentes, una StandarPack y otra EnterprisePack

      El código resultante es:

       

      # Solicitud de credenciales para conectar a Office 365

      $cred = Get-Credential

       

      # Conexión a Office 365 con las credenciales solicitadas

      Connect-MsolService Credential $cred

       

      # Consulta del tipo de licencias. Se guardan en una variable

      $Licencias = Get-MsolAccountSku

       

      #Mostrar las licencias del cliente y separarlas para asignar según los usuarios

      $option1 = $Licencias.AccountSkuID.Item(0)

      $option2 = $Licencias.AccountSkuID.Item(1)

       

      #Petición de parth del fichero donde están los usuarios

      [void] [System.Reflection.Assembly]::LoadWithPartialName(«System.Windows.Forms»)

      $ofd = New-Object System.Windows.Forms.OpenFileDialog

      $ofd.ShowHelp=$true

      if($ofd.ShowDialog() -eq «OK») { $ofd.FileName }

      $Fichero = $ofd.Filename

       

      #Alta de usuarios en Office 365 de modo recursivo a través del fichero CSV

      Write-Host «Inicio de la carga de usuarios en Office 365»

       

      Import-Csv -Path $Fichero | ForEach-Object {

         New-MsolUser -FirstName $_.FirstName -LastName $_.LastName

         -UserPrincipalName $_.UserPrincipalName

         -DisplayName «$($_.FirstName) $($_.LastName)«

         -LicenseAssignment $option1

         -UsageLocation $_.UsageLocation

         -Department $_.Department

         -PhoneNumber $_.PhoneNumber `

         -Password P@ssw0rd

       

      }

       

      #Fin de la carga de usuarios

      Write-Host «Fin de la carga de usuarios en Office 365»

       

      Saludos,

      Marc