April 27, 2011

Un nuevo capítulo arranca.

Creo que como muchos niños de los 80s crecí frente a la consola de videojuegos y aun hoy en día continúo frente a esta. Sin esta dulce etapa creo nunca me hubiese interesado en la tecnología, la cual me apasiona y me mueve, me intriga y me crea esta curiosa sed.
Hoy cierro un capítulo muy largo de mi carrera profesional, para mañana empezar uno nuevo. Lleno de nostalgia por todos las aventuras vividas en esta montaña rusa de emociones y aprendizaje pero muy feliz pues coseché grandes amigos me enrumbo a algo nuevo, certeramente un poco más cerca de esa tecnología que tanto me gusta! Me preparo para iniciar a escribir este capítulo nuevo con la mente ansiosa por el conocimiento, deseando aportar mucho a mi nuevo equipo… aprender muchísimo más!
Gracias juegos de video, gracias a mis compañeros de equipo, a mis lectores, a mi familia que me soporta largas horas acá en la computadora y a mi Dios que me brinda la dicha de abrir los ojos cada día.
Espero poder aportar mucho más por este medio y otros como ActiveDir.org, GPOGuy, el foro de Mark Minasi e inclusive TechNet y con un poco de suerte quizás llegue a conocerles en persona durante mis andanzas en mi nuevo trabajo.
Hasta pronto!

April 20, 2011

SRC?!

Dice la teoría que hay dos modos de replicación “Loose Consistency Replication” y “Strict Consistency Replication”, estos controlan el comportamiento de los controladores al recibir de otro una actualización a un objeto que no existe un su base local. En el caso de SCR se ubicara en cuarentena la partición que contenga dicho tipo de objeto, deshabilitando así la replicación con ese compañero hasta que este objeto en cuestión sea removido.
Recordemos que un “lingering object” puede aparecer al no removerse un tombstone por el garbage collector o bien al poner en línea un DC que ha estado fuera de línea por más tiempo que el TSL.
Ahora bien cosas que hay que tomar en cuenta sobre la activación del SCR, lo primordial, si tu ambiente no está limpio pues tú mismo vas a crearte una serie de problemas.
Al detectarse “lingering objects” se registra un evento 1988, estos los podríamos monitorear con genial EventQuery http://technet.microsoft.com/en-us/library/bb490900.aspx
Otra opción es utilizar el GCcheck para buscar estos y eliminarlos apropiadamente con repadmin /removelingeringobjects.
Y cuál es la configuración actual de mis controladores? Pues podemos obtener esto con un par de consultas, la primera es únicamente para obtener la lista de los controladores de mi dominio, luego utilizando esta lista voy a revisar el registro para saber si está o no activado el SCR.
dsquery server -forest -o rdn >>dclist.txt
for /f %a in (dclist.txt) do echo %a >>srcCheck.log && reg query \\%a\HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters | findstr /I "Consistency" >>srcCheck.log
Veamos un ejemplo del output, los comments en /negrita/.

DAEMON-WRDC01
    Strict Replication Consistency    REG_DWORD    0x1
DAEMON-WRDC02 
/Valor 1 = SRC/    Strict Replication Consistency    REG_DWORD    0x0
DAEMON-WRDC03
/Valor 0 = LRC/    Strict Replication Consistency    REG_DWORD    0x1
DAEMON-WRDC04 
/Valor no encontrado = 0/DAEMON-WRDC05
    Strict Replication Consistency    REG_DWORD    0x1


Podríamos cambiar la configuración al agregar la llave de registro anterior (HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Strict Replication Consistency) o bien con repadmin /regkey serverFQDN +strict o repadmin /regkey * +strict para activarlo a todos los controladores del bosque.
Otra opción es crear un archivo LDF que me creara un importe un “Operational GUID” en la partición de configuración para que los nuevos controladores tengan por defecto el SRC habilitado.

dn: CN=94fdebc6-8eeb-4640-80de-ec52b9ca17fa,CN=Operations,CN=ForestUpdates,CN=Configuration,DC=sysadmin-cr,DC=com
changetype: add
objectClass: container
showInAdvancedViewOnly: TRUE
name: 94fdebc6-8eeb-4640-80de-ec52b9ca17fa
objectCategory: CN=Container,CN=Schema,CN=Configuration,DC=sysadmin-cr,DC=com


Una vez que tengas el archivo la forma de importarlo es “ldifde.exe -i -f nombreArchivo.ldf”.
Nótese que crear este objeto no modifica la configuración de los controladores ya existentes, tampoco lo hace el hecho de elevar el modo funcional del dominio/bosque.
También es importante recalcar lo siguiente:
SCR está habilitado por defecto en ambientes donde el PDC del forest root domain fue actualizado a Windows Server 2003 utilizando winnt32.exe o bien el forest root domain fue creado al instalar un servidor Windows Server 2003 o superior.
SCR esta deshabilitado al hacer actualizaciones de servidores Windows 2000 a Windows 2003 o bien al promover un Windows 2000 en un bosque de Windows 2003.
Otros puntos a recalcar son:
*El “Garbage Collector” corre por defecto cada 12 horas en cada DC. El criterio que utiliza para la eliminación de objetos es la propiedad llamada “whenDeleted”.
*Para registrar los eventos referentes al “Garbage Collector” debe darle un valor de 1 a la llave “HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\6 Garbage Collector” (Esto creara eventos con las siguientes características: Event Type: Information / Event Source: NTDS Database / Event Category: Garbage Collection /Event ID: 1646)
*El valor por defecto del TSL es de 60 o 180 días (esto según la versión del OS) pero puede variarse al modificar el “tombstoneLifetime” en “CN=Directory Service,CN=Windows NT,CN=Configuration,DC=sysadmin-cr,DC=com”. .
Hasta la próxima!

April 11, 2011

Analizador de dumps.

Hace un tiempo adquirí un libro de “Windows Internals”, el cual pronto espero leer por completo y así mejorar en ciertas áreas, como el análisis de archivos de memory dumps, pero mientras termino de leer otros libros y adquiero dicha habilidad pues utilizare esta grandiosa herramienta gratuita http://www.osronline.com/page.cfm?name=analyze que hace el análisis por mí.
Espero a ustedes también les sea muy útil.

April 09, 2011

Consulta personalizada.

En múltiples ocasiones necesitamos hacer consultas frecuentes al directorio, pero estas tal vez van más allá de lo que normalmente la interfaz de ADUC nos muestra, por ende debemos recurrir a la consola u otras alternativas.
Hoy veremos cómo crear una de estas consultas y también desplegar dicha información en la pantalla de una forma más amigable para aquellos que no saborean la consola.
Ejecute ADUC, navegue a “Saved Queries” e indique que desea crear una consulta nueva, asígnele un nombre y si gusta una descripción.
También puede especificar el punto de partida de búsqueda con la opción de “Query Root” o utilizar la opción por defecto que inicia la búsqueda desde la raíz del dominio explorando todos sus subniveles.
Seleccione “Define Query” y luego despliegue el menú de “Find” y seleccione “Custom Search”. Acá, en la etiqueta de “Advanced” podríamos manualmente escribir el filtro de la consulta, pero mientras nos familiarizamos con esto vamos a utilizar el GUI.
Seleccione "Field" y luego "User". En este momento usted vera una extensa lista de atributos, seleccione el que usted necesita.
Muy bien, ahora se le presentaran 4 condiciones de búsqueda sobre el atributo que acá usted de seleccionar:
Is = Es EXACTAMENTE x valor, esto para cuando sabemos explícitamente que valor buscamos en dicho atributo.
Is not = Lo contrario a lo anterior.
Present = El atributo está poblado con algún valor.
Not Present= Lo contrario a lo anterior.
En el siguiente ejemplo yo estoy haciendo una búsqueda de objetos tipo “User” que tengan una dirección de correo especificada, que su nombre no sea “SystemM*” y que tengan un numero de empleado asignado.


Bien ahora para desplegar más información podríamos seleccionar las columnas que deseamos ver, esto en el menu de “View” “Add/Remove Columns”.
Como sabrán no todos los atributos están disponibles en dicho menú, entonces agregaremos unos cuantos por medio de un par de cambios que haremos con muestra muy útil y amistosa herramienta ADSIEdit.
Navegamos a “CN=DisplaySpecifiers,CN=Configuration,DC=tuDominio,DC=com”.
Si su sistema operativo esta en Ingles navegua al folder “CN=409”, si esta en Español pues ingresa al “CN=C0A”.
Dentro del contenedor de mi idioma necesito modificar las propiedades del objeto llamado “CN=default-Display”, específicamente el atributo llamando “extraColumns”.


Entonces para agregar el “legacyExchangeDN” debo especificar lo siguiente: “legacyExchangeDN,legacyDN,0,175,0”. O bien para mostrar el número de empleado: “employeeID,codEmp,0,50,0
El formato es algo como “atributo,nombreDeLaColumna,0,máximoCarácteres,0
En la siguiente imagen he agregado una columna que me muestra el legacyExchangeDN (legacyDN), employeeID (codEmp), employeeType (empType).


Nótese la misma consulta, esta vez por consola. El filtro utilizado es el obtenido en los primeros pasos.


Un servicio de directorio es como un cuaderno nuevo, su valor será la información que le agreguemos a este, dependiendo cuando ordenada esta la información en esta nuestras búsquedas serán más rápidas y simples… algo así como en Active Directory.