Error al mover usuarios de un pool antiguo a un pool nuevo en Lync 2013

Hola Mundo:

Hoy me encontraba moviendo usuarios desde un pool  de Lync 2010 hacia un pool de Lync 2013, en un proyecto de migración hacia la última versión de Lync.

El proceso iba lento, pero suave, hasta que un error salvaje apareció:

Move-CsUser : Move in progress. User «sip:xxxx@yyy.xx» is being moved from «antiguo.yyy.xx» to «antiguo.yyy.xx». At line:1 char:1 + Move-CsUser -Identity «xxxx@yyy.xx» -Target «nuevo.yyy.xx» + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (CN=XXXX,DC=yyy,DC=xx:OCSADUser) [Move-CsUser], MoveUserException + FullyQualifiedErrorId : MoveError,Microsoft.Rtc.Management.AD.Cmdlets.Mo veOcsUserCmdlet

El error hace referencia a que la cuenta ya se estaba moviendo desde un pool antiguo hacia el mismo pool. Extraña cosa.

Esto es causado porque el atributo de usuario  msRTCSIP-TargetUserPolicies tiene un valor asignado. Para corregir esto:

  1. Abrir ADSI Edit
  2. Buscar al usuario
  3. Limpiar el atributo

Al encontrar el atributo, debieran  verlo así:

 Ese atributo se debe limpiar. Dejar en blanco



Luego de eso, se podrá mover el usuario sin problemas.

Migrando de Windows XP a Windows 7 Error 0x800700C1

Hola Mundo:

Desde que Microsoft eliminó el soporte para Windows XP, muchas empresas han optado por irse a
versiones más nuevas de Windows. Hay algunas que dieron el salto a Windows 8.1, otras son más recatadas y se quedaron en Windows 8 y las más conservadoras migraron a Windows 7.

El proceso en si no es complicado. Los problemas están cuando se está usando la versión 2012 R2 de System Center Configuration Manager.

La migración desde Windows XP a versiones superiores no está soportada por SCCM 2012 R2, pero con la ayuda de actualizaciones y otros componentes podemos lograr el objetivo.

Estos pasos me sirvieron para lograr el objetivo. Sin duda, en internet también hay mucho material y formas de solucionar el problema. La idea es que las experiencias se vayan compartiendo.

Pasos a seguir:

  1. Instalar el CU1 para 2012 R2 si es que no está instalado. Este CU incluye actualizaciones que impedirán que el arranque de Windows XP se destruya, entre otras cosas. Más información sobre esta actualización se puede encontrar en: http://support2.microsoft.com/kb/2938441
  2. Instalar en una máquina cualquiera, que no tenga que ver con la instalación de SCCM 2012 R2, la herramienta Windows Automated Installation Kit (WAIK). Se puede descargar desde: http://www.microsoft.com/en-us/download/details.aspx?id=5753
  3. Generar una imagen de Windows PE 3.1 en la máquina que tiene WAIK instalado y luego agregarle los componentes winpe-Scripting.cab, winpe-WMI.cab y winpe-WDS.cab. Después importarlo a SCCM 2012 R2. Para completar esta tarea, sugiero leer el siguiente enlace: http://omgtechstuff.wordpress.com/2014/08/14/how-to-create-a-winpe-3-1-boot-image-import-it-to-sccm-2012r2/
  4. Crear un paquete USMT 5 desde WAIK. Esto es para realizar la captura de los datos de usuario y configuración de Windows. Sugiero leer el siguiente enlace: http://www.windows-noob.com/forums/index.php?/topic/4512-using-sccm-2012-rc-in-a-lab-part-8-deploying-windows-7-x64/
  5. Realizar la captura de Windows 7 instalado en una partición. Por defecto, Windows 7 crea 2 particiones: Una de arranque y otra de sistema operativo. El problema está que Windows XP solo usa una partición y dará error al momento de plasmar la imagen. Para instalar Windows 7 en una partición sugiero seguir el siguiente link: http://blogs.msdn.com/b/matthew_van_eerde/archive/2009/08/21/forcing-windows-to-install-on-a-single-partition.aspx Para hacer la captura leer el siguiente link: http://prajwaldesai.com/capture-windows-7-using-sccm-2012-r2/
  6. Crear un task sequence que utilice la imagen de booteo recién creada y que aplique la imagen recién capturada. Además, que para capturar los datos de usuario use el paquete de USMT recién creado y que utilice hardlinks para respaldar los datos.


¿Por qué?

Ni SCCM 2012 R2 ni Windows ADK en la última versión son compatibles con el proceso de migración desde Windows XP a Windows 7 o versiones superiores. Es por eso que hay que utilizar mezclas de versiones en los distintos componentes y herramientas utilizadas para éstos propósitos. Lamentablemente, no existe mucha documentación al respecto y si hay está media confusa. 
Si se intenta hacer la actualización sin hacer los pasos que describí antes arrojará error 0x800700C1 y en Google aparecerá el link: https://social.technet.microsoft.com/Forums/en-US/6e934990-999a-4367-860a-3ce4e5eda956/sccm-2012-r2-error-0x800700c1?forum=configmanagerosd y algunas luces dará frente al problema.

Espero que en algo los pueda ayudar. 

Agregar direcciones a una casilla en Exchange 2013 a través de Powershell

Hola Mundo:

Cada casilla de correo, en cualquier plataforma, puede tener distintas direcciones de correo

electrónico.

Exchange 2013 incluye esta característica y, además, es configurable a través de la interfaz web. Es bastante cómodo cuando es para un solo usuario y solo un par de direcciones y no lo es para cuando son 700 y debe hacerse a través de un script.
Para completar esta acción se debe hacer a través de la consola Powershell para Exchange 2013.

Bien. Supongamos que tenemos un CSV (llamado archivo.csv) con la información que se requiere y se tiene en el siguiente formato:

alias, emailaddresses 
usuario1,»usuario1@midominio1.com,usuario1@midominio2.com» 
usuario2,»usuario2@midominio1.com,usuario2@midominio2.com» 
usuario3,»usuario3@midominio1.com,usuario3@midominio2.com» 
usuario4,»usuario4@midominio1.com, usuario4@midominio2.com»

Se tiene 4 usuarios y cada usuario tiene 3 direcciones de email asociadas a su casilla. Es importante que las cuentas estén creadas antes de poder asociar más direcciones de correo electrónico  a las casillas. Entonces si las cuentas ya están creadas, no queda más que modificarlas usando el cmdlet Set-Mailbox

El cmdlet Set-Mailbox tiene un parámetro -EmailAddresses donde se indican todas las direcciones de correo electrónico que están asociadas a la casilla. Tiene un tipo de datos especial, por lo que hay que trabajarlo en el script para que pueda convertirlo de forma simple el valor (o los valores) que le entreguemos.

Entonces el script quedaría así:

Import-Csv "archivo.csv" | ForEach-Object {

$correos = $_."emailaddresses" -split ','

Set-Mailbox -Identity $_."alias" -EmailAddresses @{add=$correos}


}

De esta forma, le estaría diciendo al sistema que tengo un set de direcciones de correos electrónicos, separados por una coma, para la casilla identificada con el alias.

¡Chau!

Prerrequisitos para Exchange 2013

Hola Mundo:

No es raro que los productos de servidor de Microsoft requieran de una infinidad de roles y características
de Windows Server e instalarlas una a una puede resultar una tarea bastante tediosa.
Revisando la documentación de Exchange 2013 en Technet, encuentro este snippet (si es que se puede llamar asi) para instalar todos los prerrequisitos via PowerShell.

La sentencia es:

 Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation 

Luego descargas e instalas el componente Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit y estarías listo.

Para más información puedes visitar la documentación completa de Exchange 2013

Cambiar el Serial Key cuando casi todo falla.

Hola Mundo:

En el blog ya he escrito como cambiar la serial key a un Windows Server para poder activarlo. Lamentablemente eso no siempre funciona. Hoy me pasó y esta fue la solución.

Primero que todo hay que abrir una ventana de cmd con privilegios de administrador y ejecutar la siguiente sentencia:

DISM /online /Set-Edition:EDITION /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula


Por ejemplo: Si vas a activar un Windows Server 2012 Standard, el valor del parametro Set-Edition tiene que ser ServerStandard. Quedaria así:

DISM /online /Set-Edition:ServerStandard /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula

Si vas a activar un Windows Server 2012 Datacenter, el valor del parametro Set-Edition tiene que ser ServerStandard. Quedaria así:

DISM /online /Set-Edition:ServerDatacenter /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula

Después de esto, el equipo reiniciaría un par de veces. Una vez que esté listo, puedes activar tu instalación.

Eso.

Creando tareas programadas en Windows Server

Hola Mundo:
 Para las tareas de administración de cualquier sistema operativo o infraestructura es necesario ejecutar tareas de formas periódicas. Todas las familias de sistemas operativos incluyen sus propias herramientas para crear tareas programadas. En Windows se llama «Task Scheduler» o «Programador de tareas» y en los derivados de Unix se llama «Cron».

 Dejemos el bla bla y vamos a la acción:

 

Habilitar la compresión en IIS

Hola Mundo!

La compresión de contenido en el servidor se hace más que necesaria cuando se quieren mejorar los tiempos de respuesta del sitio y además economizar ancho de banda.

No todo es bello, ya que aumenta el consumo de recursos de hardware para completar la operación.

Por lo menos, en IIS existe la compresión para contenidos dinámicos y para contenidos estáticos. De por si, la compresión para contenidos dinámicos utiliza más recursos de CPU que la de contenido estático.  Es por eso que se recomienda para servidores con buen procesador, pero con conexiones a internet lentas.

Dejando el bla bla, vamos al video

Ya saben. Cualquier consulta en los comentarios del video o aca.

Chau

Cambiar el product Key de Windows

Hola Mundo:

Recién instalé un servidor para un cliente bajo la configuración que el solicitó. Un requerimiento era que el sistema operativo debía ser Windows Server 2012 Std.

Se contaba con las licencias y estaba todo en orden.  La instalación se realizó sin problemas. Todo funcionaba bien hasta que llegó el momento de activar.

Windows Server me sugería que visitara el cento de acción para realizar la activación. El centro de acción me sugería ir al panel de control para ver otras formas de activación. En ninguna de las partes me daba la posibilidad de ingresar el product key.

Ya mas  o menos molesto, encontré la solución en internet. La solución consiste en:

  1. Abrir el CMD
  2. escribir «SLUI 3» (Sin las comillas, obvio)
  3. Se abrirá una ventana como esta y escribir la licencia.

SLUIEsto funciona en Windows 7, Windows Server 2008 R2, Windows 8 y Windows Server 2012. No sé si funciona en versiones anteriores.

Existen muchas otras maneras y configuraciones para la activación de Windows.

Espero que les sirva, tal como a mi me sirvió.

 

Solucionar error de idioma y localizacion de SQL Server en la instalacion

Hola Mundo.

Después de algunas semanitas de ausencia vuelvo otra vez con un tip para solucionar un problema bastante recurrente en la instalacion de SQL Server cuando se realiza sobre Windows que no coincide con el medio de instalación.

Este error aparece por primera vez en SQL Server 2008 R2 por una nueva política de localización.

El error es este:

Error Localizacion SQL Server Instalacion
Error Localizacion SQL Server Instalacion

El error dice: SQL Server setup media does not support the language of the OS or does not have ENU localized files. Use the matching language-specific SQL Server media or change the OS locale through control panel.

Solucionarlo es muy simple:

  • Ir a Panel de Control
  • Abrir propiedades de Region y Localización
  • Cambiar el formato y la ubicacion a la raiz del idioma del sistema operativo. Por ejemplo, si estás usando es-cl (Español de Chile) debes cambiarlo a es-es (Español de España).
  • Aplicar cambios, guardar y cerrar.
  • Volver a intentar la instalación.

Con este workaround no debieras tener problemas.