Archivo

Archivo para mayo, 2014

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

[FIX] Cisco VPN Client y Windows 8.1

martes, 20 de mayo de 2014 Sin comentarios

Hola,

No sé si os veis afectados por ciertos problemas para hacer funcionar el cliente de Cisco VPN con vuestro Windows 8.1

En Windows 8, con un hack en el registro se podía hacer funcionar pero en 8.1 (x64 y supongo que en x86) la instalación hace que mi Windows muestre una simpática (y casi desconocida) BSOD impidiendo finalizar la instalación y, por tanto, sin serme de utilidad el hack.

Bien, navegando por Internet he encontrado un foro (Microsoft Answers) donde dan con una solución. O con LA solución.

Os la expongo por si os da palo hacer click en el link o no queréis leer en inglés.

  • El primer paso es instalar el software Citrix DNE (sí, de Citrix) en el equipo ANTES de instalar el software de Cisco. Se puede descargar desde aquí
  • El segundo paso, después de reiniciar (o no el PC) es instalar el cliente de Cisco como tal.
  • Tercer paso, mirar si funciona.

Y parece que sí

image

Nota: Sólo he probado con el cliente de Cisco versión 5.0.07.0440-k9

image

 

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