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.

March 29, 2011

Manejo de politicas.

Les comparto una consulta que tuve hoy.
En X ambiente se necesita desactivar la sección de usuario de ciertas políticas. Como es muy común esto debe de hacerse con el mínimo de recursos.
Muy bien, este parámetro es controlado por el atributo llamado flags del objeto tipo groupPolicyContainer, que se encuentra en domainDNS/SYSTEM/Policies.
Los valores del atributo son:

flags = 0 = Habilitado.

flags = 1 = Configuración de usuario deshabilitado.

flags = 2 = Configuración de equipo deshabilitado.

Muy bien, con la información anterior en mente entonces veamos la configuración actual de las políticas:

adfind -f (objectClass=groupPolicyContainer) cn displayName flags

El comando anterior me mostrara las políticas, su nombre común y su configuración.
Y bien, como sé yo si la política ABC123 está ligada a un OU especifico?
Pues en este caso deberemos ver las propiedades de la Unidad Organizativa, el atributo que nos interesa es el llamado gPLink, por ende, una consulta como la siguiente debería de darle ma información necesaria:

adfind -f "(&(objectClass=organizationalUnit)(gPLink=*ABC123*))" cn

Ahora, si lo que deseas es buscar la información "al revés" (cuales GPOs están ligadas al OU XYZ) entonces usted necesita algo como:

adfind -f "(OU=XYZ)" gpLink

El resultado de la consulta anterior sería algo como:

dn:OU=XYZ,DC=sysadmin-cr,DC=com
>gPLink: [LDAP://cn={4449C74E-409F-471E-93C3-D02AAEE9722D},cn=policies,cn=system,DC=sysadmin-cr,DC=com;0]...

Nótese el valor entre {} y el resultado del cn de las consultas anteriores.
Eh aquí una versión grafica de lo anterior, espero le sea útil. Recuerde que una política puede estar ligada a N sitios y/o OUs.


Hasta pronto y gracias por leer.

March 28, 2011

AD Snapshots.

Ah tan linda que es la fotografía! Gratas memorias quedan plasmadas en estas. Pero qué tal si hacemos algo similar con nuestro AD, nos podría ser muy útil como material de referencia e inclusive con una que otra herramienta por ahi nos puede funcionar para restaurar/reanimar objetos. Ok, vamos como tomar y mirar snapshot de nuestro AD.

Para esto necesitamos utilizar un par de herramientas, veamos el proceso.
1- Crear el snapshot
NTDSUTIL
ACTIVATE INSTANCE NTDS
SNAPSHOT
CREATE


Listo, si queremos ver los snapshot existentes utilizaremos el comando “LIST ALL

2- Montar el snapshot.
En este caso tengo un par de versiones, la que acabamos de crear y una más antigua. Vamos a utilizar la más reciente, entonces con el mismo NTDSUTIL emitiremos el siguiente comando:
MOUNT 4


Nótese que hay un archivo para el volumen C y también pare el E. En mi caso el NTDS.dit está almacenado en E:\WinNT\NTDS\. Esto explica la la existencia de ambos.
Ahora bien, necesitamos utilizar la herramienta llamada dsamain.exe, le indicaremos la ruta del .DIT y que utilice el puerto 5000. Esto lo ejecutamos en una consola nueva.
DSAMAIN /DBPATH {rutaObtenidaEnElPasoAnterior}\ruta\ntds.dit /LDAPPORT 5000


3- Accesar/mirar el snapshot.
En la documentación Microsoft se sugiere utilizar LDAP, yo opto por ADExplorer, entonces le vamos a decir al ADExplorer que se conecte al puerto 5000 del servidor donde montamos el snapshot.


Y bingo! Como podemos ver acá está nuestro AD!!!


Hasta pronto!

March 19, 2011

Exchange RU3 y BES 5.0

Hace unos días se notificó sobre un problema entre el RU3 de Exchange 2010 SP1 y Blackberry 5.0 MR4, pues bien Microsoft a decidido retirar este RollUp mientras se provee una solución final. Por su parte RIM no ha confirmado el lanzamiento de un MR5 que contenga el fix para esto. Como vemos, una razón más para tener un ambiente de pruebas y utilizarlo apropiadamente. Para mayor información visite http://blogs.technet.com/b/exchange/archive/2011/03/14/exchange-2010-sp1-rollup-3-and-blackberrys-sending-duplicate-messages.aspx
Por cierto, que buen nuevo look tiene el blog del Exchange :)

February 21, 2011

0xc00013c5 y eso que significa?!

Alguna vez al revisar bitácoras ha obtenido un mensaje de error como 0xc00013c5, o bien algo como -1073741819?
La mayoría de las veces estos corresponden a códigos de error Win32 lo cuales podemos interpretar con el comando NET.
En un caso como el primero, lo que hacemos es tomar los últimos cuatro caracteres (13c5), abrimos la calculadora y la ponemos en modo científico, seleccionando la opción de hexadecimal (HEX), ingresamos el valor y presionamos la opción de decimal (DEC) para así convertir ese valor. El resultado es 5061, ahora tomamos este valor y lo “traduciremos” con NET HELPMSG :-)

C:\tools
>NET HELPMSG 5061


The cluster node is already up.

Ahora bien, en el Segundo ejemplo tomamos el -1073741819, lo pasamos a HEX, tomamos los últimos 4 caracteres y los convertimos en valores decimales, es como el primer proceso pero al revés. Esto da como resultado el número 5.

C:\tools
>NET HELPMSG 5


Access is denied.

Espero que después de leer esto no ponga esa cara de ~que diantres!?~ cuando obtenga un código de error 0xc000089A!

Hasta pronto.

February 17, 2011

Configurando seguridad del Internet Explorer.

Un amigo me contacto pues tenían una necesidad de agregar ciertos valores sobre los sitios de confianza en la configuración de seguridad del Internet Explorer, eso sí, manteniendo la posibilidad de que los usuarios según su necesidad continuen administrando esto.
Para lograrlo necesitamos hacer unos cambios en el registro, estos los salve como un archivo BAT y los ligue a una política, en la sección de “User Configuration\Windows Settings\Scripts\Logon”.
Acá agrego el dominio y los protocolos en los que confío.

REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\sysadmin-cr.com
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\sysadmin-cr.com" /V http /T REG_DWORD /D 0x00000001 /F
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\sysadmin-cr.com" /V https /T REG_DWORD /D 0x00000001 /F
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\sysadmin-cr.com" /V ftp /T REG_DWORD /D 0x00000001 /F

Nótese que le estoy dando un valor de 1 a cada entrada del registro, este significa Intranet. Otros valores podrían ser 2 (Sitios de confianza), 3 (Internet) o bien 4 (Sitios restringidos)
Si gustan ir un poco más allá con la configuración del IE les sugiero mirar este KB: http://support.microsoft.com/kb/182569
Otra forma de hacerlo para quienes tienen un ambiente actualizado es por medio de los GPP http://www.microsoft.com/downloads/en/details.aspx?FamilyID=42E30E3F-6F01-4610-9D6E-F6E0FB7A0790

Saludos!

February 13, 2011

W7 SP1 y RSAT

Como sabemos el próximo Martes 22 será el “frabuyoso” día en que el Service Pack 1 de Windows Server 2008 R2 y Windows 7 estará disponible para descargarlo, hay un pequeño detalle que debemos notar, la versión actual de RSAT no funciona en un sistema con SP1, según informo Microsoft se lanzara una nueva versión de este el próximo Abril. Asi que si usas tu equipo W7 para administrar otros pues yo esperaría un poco antes de actualizarlo.

February 11, 2011

Configurando SNMP

Hace un par de días tuve que hacer una cantidad de cambios en el servicio de SNMP, básicamente necesitaba modificar los derechos de las comunidades, este proceso normalmente requiere que me conecte al snap-in de Services de cada equipo, lo cual pues consume una considerable cantidad de tiempo por ende me di a la tarea de investigar un poco, mi primer opción fueron los comando SC pues estos se utilizan para la configuración de servicios de Windows, pero no funciono.
Para mayor información visite http://support.microsoft.com/kb/324263
La información requerida esta almacenada en HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities
Según los derechos asignados usted deberá asignar diferentes valores de la siguiente manera:

Notify 2
Read Only 4
Read Write 8
Read Create 16

Luego agregué un mágico /for y en cuestión de minutos el trabajo estaba listo.
Eh acá unos cuantos ejemplos.
Para crear una entrada con derechos de "Read Create":

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities /V testReadCreate /t REG_DWORD /d 0x00000010

Para remover una entrada e inhabilitar la confirmación de borrado:

reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities /V dcs /f

Ahora veamos como haría esto con una cantidad mayor de servidores, para lo cual necesito una línea de comandos como la siguiente:

for /f %a in (dclist.txt) do echo %a >>remove.txt && reg delete \\%a\HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities /V ghi /f >>remove.txt && net stop SNMP /y && net start SNMP

Veamos esta con más detalle:
Leo el archivo [for /f %a in (dclist.txt)]
Guardo el nombre del equipo que estoy manipulando [echo %a]
Borro la entrada del registro [reg delete \\%a\HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities /V ghi /f]
Detengo el servicio [net stop SNMP /y]
Y luego lo vuelvo a iniciar [net start SNMP]
El output de estos comando lo almaceno en un archivo de texto llamado remove.txt.

Con la siguiente serie de comando hago una consulta al Windows Registry para verificar los valores actuales y también reviso que el servicio de SNMP este ejecutándose.

for /f %a in (dclist.txt) do echo %a >>check.txt && reg query \\%a\HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities >>check.txt && sc \\%a query SNMP
FINDSTR /I "STATE"

Esto es tan solo una forma más de hacer algo, espero tal como me sirvió a mí y me ahorro tiempo, le sea útil a ustedes!

January 18, 2011

La recomendación del día.

El día de hoy quería mencionar una herramienta para el inventario y administración de cuentas de usuario inactivas, es el “Inactive Users Tracking” de NetWrix. Existen dos versiones, la gratuita ofrece únicamente opciones de inventario/reporte, este último mediante correo electrónico por medio de una tarea programada que se crea automáticamente al configurar el utilitario. La otra versión ofrece opciones avanzadas de reporte e inclusive aislamiento o desactivación de las cuentas, también maneja objetos tipo computadora, ignoro su valor ni voy a ganar alguna comisión por sus ventas, así que esto no es un comercial.
Si gustan descargarlo y probarlo de forma gratuita lo pueden hacer en http://www.netwrix.com/inactive_users_tracker_freeware.html
En mi humilde opinión es una muy buena herramienta, lo único que me parece un poco lento es el tiempo que le toma procesar los datos y el consumo de memoria, pero sigue siendo más rápido que hacer un dump con ADFind y luego procesar los datos.

December 11, 2010

EMTshooter

En el tercer ambiente donde instale Exchange 2010 SP1 tuve que afrontar una serie de problemas con WinRM… en cierto punto no podía administrar mi ambiente. En ese momento como que no había mucha información disponible al respecto y lo poco que encontré no funciono, afortunadamente nada que una reinstalación no solucionara.

Para bien de todos ahora contamos con esta herramienta el EMTshooter, espero les salve un poco de su valioso tiempo http://msexchangeteam.com/archive/2010/12/07/457139.aspx

Nuevo servicio de Google.

Excelente oferta por parte de Google! Y el precio me parece pues bueno.
http://www.google.com/postini/continuity.html



Y pues yo no cambio Exchange, pero todos necesitamos un plan B.

December 07, 2010

Lista de programas instalados.

Hola amigos, solo un tip rápido para averiguar qué programas están instalados en un equipo…
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\ /S | FIND "DisplayName" | FIND /V "QuietDisplayName"
Y si lo que ocupamos es la lista de parches/actualizaciones pues nada como el fiel WMIC QFE LIST FULL /FORMAT:HTABLE >C:\hotfixes.htm
Claro, si son varios equipos podemos incluir un FOR por ahí… hasta pronto!

December 03, 2010

Jugando con PerfMon

Hace unos días tuve que implementar una serie de contadores para poder comprender y también documentar un poco sobre rendimiento de mis controladores, entonces pues por la gran cantidad de estos busqué un poco como automatizar el proceso y así ahorrarme tiempo que puedo invertir explorando las maravillas de la web u otros.
Básicamente haremos lo siguiente, crear el conjunto de contadores, una tarea que los inicie al arrancar el equipo y luego otra que a media noche cree una bitácora nueva y envíe la anterior a un punto centralizado de almacenaje.
Realmente podríamos escribir la bitácoras directo a un SQL pero eso me crearía ciertas dependencias adicionales que en mi caso no deseo. Igual esto es tan solo una de las mil formas de hacer las cosas.
Pues bien, manos a la obra!
El primer punto entonces es crear el conjunto de contadores, los cuales guardaremos en un archivo XML que funcionara como plantilla, para esto ejecute el Performance Monitor, navegue a la sección de Data Collector Sets y luego User Defined. Si usted no tiene pues mucha experiencia con el PerfMon pues le recomiendo iniciar acá http://technet.microsoft.com/en-us/library/cc749249.aspx
Es ahí donde deberá agregar los contadores que usted necesite, recuerde que también hay plantillas que usted podría utilizar o bien personalizar según sus necesidades.
Para efectos de estandarización en la plataforma creare una carpeta llamada "scripts" en la raíz de C: y en esta almacenaré la plantilla o machote del Performance Monitor, esta se almacenara en formato XML.
En este caso esto lo necesito hacer únicamente en mi controladores de domino por lo cual con este comando los enlistare todos "dsquery server -o rdn >dc-list.txt"
Listo, ahora vamos a crear la carpeta y copiar su contenido en todos los servidores de la lista anterior, necesitaremos también los archivos para las tareas.
logman start testCollectorSet
Este lo llamaremos start-PerfData.bat
El comando anterior iniciara el set de colección de datos llamado "testCollectorSet", acá no hay como que mucha magia.
Siguiente!
logman stop testCollectorSet
start-sleep 10
robocopy D:\perfmon \\repositorio.fqdn\carpeta\ /mov
start-sleep 180
logman start testCollectorSet
Este lo llamaremos recycle-PerfData.ps1
Acá detenemos la captura de datos, esperamos un poco, movemos los datos hacia un repositorio central (el cual no es más que un simple folder compartido con sus respectivos permisos), purgamos los archivos e iniciamos la recolección de datos.
Procedamos a copiar la carpeta y su contenido a los servidores.
"for /f %a in (C:\serverList.txt) do xcopy C:\Scripts \\%a\c$\scripts\ /I /E"
Ahora bien, para crear el grupo de contadores en cada servidor simplemente necesito el siguiente comando:
"for /f %a in (C:\serverList.txt) do logman -s %a import testCollectorSet -xml C:\scripts\testCollectorSet.xml"
Necesito crear dos tareas, estas invocaran los archivos que acabo de transferir, la primera iniciara los contadores al arranque y la segunda que hará el movimiento de la información se ejecutara a media noche.
Para crear dichas tareas ejecute este comando:
"for /f %a in (C:\serverList.txt) do schtasks /create /s %a /RU cuentaDeServicio@daemonroot.com /RP P@$$w0rd /SC onstart /TN inicia-perfData /TR C:\Scripts\start-PerfData.bat & schtasks /create /s %a /RU cuentaDeServicio@daemonroot.com /RP P@$$w0rd /SC daily /ST 00:00 /TN reinicia-perfData /TR C:\Scripts\recycle-PerfData.ps1"
Notemos que acá estoy utilizando una cuenta de servicio, como son controladores debe usted de tomar en cuenta los permisos necesarios para esta.
Y si todo lo anterior es exitoso pues podríamos iniciar las tareas sin problema alguno
"for /f %a in (C:\serverList.txt) do schtasks /run /s %a /tn inicia-perfData"
En nuestro caso uno de mis compañeros desarrollo un humilde script que lee los archivos CSV del repositorio central, los lee y crea reportes de estos... un poco avanzado para mis capacidades!
En las propiedades del PerfMon especificamos que se recopilen datos cada minuto y que el nombre del archivo sea %computername%_Performance Counterfecha.csv, acá estan sus propiedades.
C:\>logman query testCollectorSet

Name: testCollectorSet
Status: Stopped
Root Path: C:\perfmon
Duration: 60 second(s)
Segment: Off
Schedules: On
Run as: DAEMONROOT\cuentaDeServicio
Name: testCollectorSet\Performance Counter
Type: Counter
Output Location: C:\perfmon\NEMESIS_Performance Counter031210.csv
Append: Off
Circular: Off
Overwrite: Off
Sample Interval: 60 second(s)

Counters:
\Processor(_Total)\% Privileged Time
\LogicalDisk(_Total)\% Disk Read Time
\LogicalDisk(_Total)\% Disk Write Time
\Processor(_Total)\% C1 Time
\Processor(_Total)\% C2 Time
\Processor(_Total)\% C3 Time

Bueno, espero esto les sea útil, como siempre acá estaré si necesitan una mano, hasta pronto!

October 31, 2010

2K8 R2 SP1 RC.

Desde hace un par de días ya está disponible el Release Candidate del Service Pack 1 para Windows Server 2008 R2 y Windows 7, en lo personal e utilizado la versión Beta los últimos meses y no he tenido problema alguno http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c3202ce6-4056-4059-8a1b-3a9b77cdfdda
Que se diviertan!

October 30, 2010

Autoarchivado y retención de bitácoras.

Una de las cosas que más me gusta de Windows Server 2008 es el visor de sucesos, vaya que mejora ha sido!
Vamos a explorar el siguiente escenario, necesito almacenar todas las bitácoras de seguridad por 45 días, desde luego el proceso de recolección y eliminación debe de ser automatizados para que el esfuerzo de nuestra parte sea mínimo.
Entonces manos a la obra, vamos a ajustar un poco la configuración de los eventos de seguridad “WEvtUtil SL Security /RT:true /AB:true /MS:52428800 /LFN:D:\eventViewer-depo\Security.evtx”
Con esto estoy activando la retención por medio del archivado automático y estableciendo un límite de 50MBs por archivo de bitácoras (formato EVTX). Dichos archivos serán almacenados en la ruta y archivo que indique (D:\eventViewer-Depo\Security.evtx) [La ruta por defecto es %windir%\System32\wbem\Logs]
Listo, ahora si revisamos nuestra ruta de almacenaje deberíamos de encontrar unos archivos llamados Archive-Security*.EVTX y otros más. Para manejar esto de forma automática podríamos salvar las siguientes líneas en un archivo tipo BAT e invocarla con una tarea programada diaria.

@echo off
REM ### ~ daemonRoot@sysadmin-cr.com ###
REM ### Inicia búsqueda de archivos mayores a los 45 días ###
forfiles /P D:\eventViewer-Depo /S /M * /D -45 /C "cmd /c echo @path" > D:\eventViewer-Depo\toDelete.log
REM ### Se remueven los archivos encontrados con el criterio anterior ###
for /f %%a in (D:\eventViewer-Depo\toDelete.log) do del /Q %%a
REM ### Se procede a enviar un reporte por correo electrónico sobre el purgado, el cual nos indica los archivos eliminados y la ejecución exitosa de la tarea ###
sendEmail.exe -f monitoring@sysadmin-cr.com -t server-support@sysadmin-cr.com -u REPORTE: Purgado de archivos de evento -m El archivo adjunto contiene la lista de bitácoras eliminadas como parte del proceso de retención y limpieza –a D:\eventViewer-Depo\toDelete.log -s smtp.sysadmin-cr.com
REM ### Se borra el archivo con la lista de ítems eliminados ###
del /q D:\eventViewer-Depo toDelete.log
REM ### Tarea completa ###

Que diferente era hacer esto con Windows Server 2003… que lindo como evoluciona la tecnología!
Gracias por su tiempo.

October 09, 2010

E14-SP1 UR1!!!

Como habrán notado desde un par de días está disponible el Update Rollup 1 para el SP1 de Exchange 2010, en este artículo veremos cómo aplicarlo a un DAG.
Básicamente moveremos las base de datos a uno de los servidores, detendremos la activación de las bases de datos (también cuando aplique debemos detener ciertos servicios que podrían causar conflictos como el de Forefront), actualizamos, y regresamos todo a la normalidad.
Con el comando “Get-MailboxDatabase” veremos el listado de bases de datos.
Ahora bien, movamos la base de datos a un solo servidor, esto ejecutando el comando “Move-ActiveMailboxDatabase nombreDaseDatos –ActivateOnServer servidorDestino” y luego lo confirmamos con el primer comando.


De la siguiente manera podemos ver la política de activación de las bases de datos en el servidor llamado HADES (recuerda que las bases de datos están en AQUERONTE, no deseo que estas se activen en el servidor que voy a parchear):
[PS] C:\>Get-MailboxServer HADES | FL Name,DatabaseCopyAutoActivationPolicy

Name : HADES
DatabaseCopyAutoActivationPolicy : Unrestricted

Para desactivarla utilizaremos el siguiente CMDLET "Set-MailboxServer HADES -DatabaseCopyAutoActivationPolicy Blocked" (el parámetro "DatabaseCopyAutoActivationPolicy -Unrestricted" revierte el cambio).
Bien, ahora podremos aplicar el RU1 simplemente ejecutando el archivo MSU en que viene empaquetado, este procedimiento también aplica para el Service Pack, solo que la instalación de este debe de invocarse mediante el SETUP (para mayor información visite este enlace).
Por el momento el UR1 solo está disponible por descarga directa, se espera que para este Patch Tuesday esté disponible vía Windows Update.



Como toda instalación/actualización de Exchange esto debe de ejecutarse en orden alfabético según las funciones del servidor (CAS-1, HUB-2, MBX-3, UC-4).
Hasta pronto.