lunes, agosto 15, 2011

Borrando una configuracion IMAP del perfil de Outlook

El desafio era, agregamos el perfil de exchange, pero como sacamos el perfil anterior??

Aca les dejo el script que contruimos, falta depurarlo, seguro se puede hacer en menos lineas, jejjee.

Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_CURRENT_USER = &H80000001


Set Ws = WScript.CreateObject("WScript.Shell")


Dim ww


set ww=wscript.createobject("wscript.network")


nombreusu=ww.UserName
avalor = Array(1,1,1,1,1,1)
strComputer = "."
KeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\"
DefaultProfile="vacio"


On Error Resume Next
DefaultProfile = ws.RegRead("HKCU\" & KeyPath & "DefaultProfile")
If DefaultProfile = "vacio" Then
WScript.quit


End if


Call BuscaKey()


WScript.Quit


Sub BuscaKey()
'----------------------


Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676"


oReg.EnumKey HKEY_CURRENT_USER,strKeyPath, arrSubKeys


For Each subkey In arrSubKeys
WScript.Echo subkey


If eslakey(subkey) Then
aborrar = strKeyPath & "\" & subkey
oReg.DeleteKey HKEY_CURRENT_USER, aborrar


End if
Next


End sub






Private Function eslakey(subkey)
'-------------------------------


Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\" & subkey


oReg.EnumValues HKEY_CURRENT_USER,strKeyPath, arrValueNames


For Each Valor In arrValueNames


If Valor = "IMAP Server" Then
imapserver = 1
End If


Next


eslakey = 0


if imapserver = 1 Then


strValueName = "IMAP Server"
oReg.GetBinaryValue HKEY_CURRENT_USER, strKeyPath, strValueName,strValue
imapsrv=strValue


email= ""


For i = lBound(strValue) to uBound(strValue)
If strvalue(i) <> 0 Then
email=email + Chr(strValue(i))
End If


Next


If LCase(email) = "mailserver.dominio.cl" or LCase(email) = "10.10.10.11" Then
eslakey = 1
End if


End If
End function


WScript.Quit

Saludos!

Isa

miércoles, agosto 10, 2011

Migrando a Exchange

Hace tiempo que no posteaba un articulo para mi blog, mas bien ha sido por que le he dedicado mas tiempo a otro Blog, ya les contare sobre ese proyecto que me ocupa varias de mis horas.

Este ultimo tiempo una de las actividades que mas me ha tocado enfrentar ha sido la migracion de la plataforma de correo de distintos sabores a Exchange 2007/2010, han sido proyectos bastante interesantes y entretenidos, unos mas expeditos que otros, pero el ultimo desafio es mas interesante ya que debiamos practicamente automatizar la migracion usando un grupo de prueba de 5 usuarios y dejar los procedimientos y scripts para migrar los otros 2000 usuarios en forma lo mas trasparente posible.

Interesante.

Primer Desafio: Creación de las cuentas Exchange.

Parecia algo facil, teniendo el archivo csv con los datos de los usuarios el crear la cuenta o asociarles un buzon a cuentas existentes no revertia gran complejidad, sin embargo en este caso las cuentas pertenecian a otro dominio, por lo que se trataba de cuentas linkeadas.

Tomando como base un artículo publicado por Cristian Aguilera y teniendo la línea de comando al crear un usuario me arme del siguiente script.

$Credential = Get-Credential

$data = import-csv $args[0]

foreach ($i in $data)
{
$upn = $i.alias + '@DOMINIO.CORP'

New-Mailbox -Name $i.displayname -Alias $i.Alias -OrganizationalUnit 'DOMINIO.CORP/Usuarios' -UserPrincipalName $upn -SamAccountName $i.sam -FirstName $i.nombre -Initials '' -LastName $i.apellido -Database $i.database -LinkedMasterAccount $i.usuarioad -LinkedDomainController 'DC1.dominio.cl' -LinkedCredential $Credential
}

El script me funciono a la segunda, pues a la primera use el alias como SamAccountName y me reclamo por el largo que era mayor a 20 caracteres, asi que tuve que volver a generar el csv con este dato truncado a 20.

Otro problema que nos surgio fueron los nombres con acentos y eñes, tales como Díaz o Muñoz, al crear el usuario aparecian signos de interrogacion o cuadraditos, estabamos bajando el languaje pack cuando un articulo nos dio la luz, guardar el archivo como unicode, probamos y solucionado.

Segundo Desafio: Transferir los Datos de los Usuarios.

En proyectos anteriores ya habia usado este juguetito, se llama Microsoft Transporter Suite, que sirve para migrar cuentas pop/imap a Exchange 2007 (No esta disponible para Exchange 2010).
Tercer Desafio: Migrar los perfiles Outlook de los Usuarios

En migraciones anteriores esto habia estado a cargo del cliente quien migraba los pst y configuraciones usando a gente de soporte, sin embargo esta vez, debido al volumen de usuarios se queria hacerlo usando alguna GPO a la que se le agregara algun script.

Con la orientacion de mis amigos del GLUE que me recomendaron realizar estos cambios usando archivos prf logre realizar al menos parte de lo que necesitaba.

Tomando el perfil por defecto, llamado Outlook, se le agrego la configuracion de Exchange, se dejo ese perfil como predeterminado, se deja la configuracion exchange como predeterminada configurandola con la informacion del Usuario autenticado, se tomo un archivo de ejemplo y se modificaron las siguientes secciones:

; **************************************************************
; Section 1 - Profile Defaults
; **************************************************************


[General]
ProfileName=Outlook
DefaultProfile=Yes
OverwriteProfile=Append
ModifyDefaultProfileIfPresent=True
DefaultStore=Service1


;***************************************************************
; Section 4 - Default values for each service.
;***************************************************************


[Service1]
OverwriteExistingService=Yes
UniqueService=Yes
MailboxName=%username%
HomeServer=EXMBX0
AccountName=Microsoft Exchange Server
DefaultAccount=TRUE

El resto de las secciones se dejo por defecto, con esto los usuarios quedaron con sus pst y configuraciones que tenian, para aplicar esta modificacion bastaba con ejecutar el outlook con los siguientes parametros:

Outlook.exe /importprf archivo.prf

Queda ahora el desafio de como eliminar la configuración del servidor anterior.

Saludos!

Isa