viernes, 28 de noviembre de 2014

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. 

jueves, 20 de noviembre de 2014

DNS Públicos

Hola Mundo:

Hay un protocolo llamado DNS, que es un gran responsable en el funcionamiento de Internet. Gracias a el se pueden resolver las direcciones IP a partir de un nombre de dominio.

Todos los ISP tienen servidores de DNS para que los clientes puedan resolver los direcciones IP de sus suscriptores.
El problema está en que muchas veces aplican restricciones, sobrecargas y operaciones que hacen que la resolución sea un poco más lenta.

Al usar los DNS de otro lugar, país o servidor distinto al ISP, la resolución de nombres puede que sea algo más rápida, lo que da una sensación de rapidez en la conexión.

Hay un número considerable en el mundo  de servidores DNS públicos.
Algunos son:
  • Google: 8.8.8.8
  • OpenDNS: 208.67.222.222
  • Level3: 209.244.0.3
  • FreeDNS: 37.235.1.174
En Chile tenemos unos cuantos:
  • 37.235.52.191
  • 179.9.20.50
  • 186.107.119.118
  • 190.9.57.2
 Se puede encontrar un gran listado en el sitio web: http://www.public-dns.tk

Importante: No esperen máxima privacidad al usar DNS Públicos.

lunes, 20 de octubre de 2014

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,"[email protected],[email protected]
usuario2,"[email protected],[email protected]
usuario3,"[email protected],[email protected]
usuario4,"[email protected], [email protected]"

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!

domingo, 5 de octubre de 2014

Tips de Powershell para Exchange 2013

Hola Mundo:

¡Que maravilloso que los productos tengan su consola de Powershell! Es muy bueno como se puede automatizar y administrar a través de estas herramientas. Ahora, no es nuevo. Desde la versiones anteriores de Windows y los productos que se puede hace scripting con VBScript y en los derivados de Unix se tiene la poderosa Shell.

¿Cuál es la ventaja de Powershell? La orientación a objetos y la integración con .NET.
De todas formas, no pretendo hablar largo de los lindo que es Powershell. El objetivo es dejar anotados ciertas líneas muy útiles  y que las he usado harto estos días en el trabajo. 

Eliminar todos los usuarios
$mailbox = Get-Mailbox
Foreach($cuenta in $mailbox){Remove-Mailbox -Identity $cuenta.Alias -Permanent $true -Confirm:$Y}


Eliminar todos los contacto
$contactos = Get-MailContact
Foreach($contacto in $contactos){Remove-MailContact -Identity $contacto.Alias -Confirm:$Y}


Eliminar todos los grupos
$grupos = Get-DistributionGroup
Foreach($grupo in $grupos){Remove-DistributionGroup -Identity $grupo.Alias -Confirm:$Y}

Nada más copiar y pegar.

Chau!