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.

October 05, 2010

Servidores nuevos, siiii!

Estamos en la fase de diseño de nuestros nuevos controladores, necesitamos comprender como se comporta el equipo actual para asi hacer nuestros pronósticos para el siguiente.
Con perfmon puedo crear un set de contadores como memoria, tiempos de lectura de la partición donde se aloja el NTDS.DIT y procesador, estos los salvo como un archivo HMT (Server 2003) o XML para crear un machote (a partir de Server 2008) y así los puedo reutilizar en otros equipos. Además puedo especificar que el output sea en formato CSV lo cual hará más fácil el proceso de datos en Excel.
Entonces con lo anterior puedo tener ciertos números aproximados de cuanta memoria necesito, si mi arreglo de discos y velocidad de estos es adecuado, también si necesito más procesadores, o tal vez alguno más poderoso.
También algo que nos puede ser útil es llevar un archivo histórico que refleje el comportamiento de la base de datos de AD, en el EventID 1646 podemos encontrar el tamaño de este, entonces podríamos analizar el crecimiento de este y junto con información sobre el crecimiento o proyecciones de la empresa podríamos calcular el espacio adecuado de los discos para almacenarlo. También en la sana teoría es óptimo poder cargar nuestro AD en memoria, por lo cual saber su tamaño es muy importante.
Otros factores como futuras implementaciones o ampliaciones de servicios que dependen en AD nos pueden afectar, tal como Exchange que estará haciendo consultas continuas a AD, o el almacenaje de llaves de encriptación de BitLocker lo cual hará crecer el .DIT.
Recordemos que cambiar el hardware no es algo que se hace a menudo por lo cual además de lo que con nuestro método podamos prever debemos dar un espacio de error y desde luego calcular cuántos años pretendemos utilizar el equipo nuevo.
Como siempre, esto no es una guía definitiva, son tan solo un manojo de ideas que espero les puedan ayudar, gracias por su lectura.

October 01, 2010

WSUS en un RODC

Estaba yo trabajando con unas instalaciones en oficinas remotas, en uno de los casos necesitaba instalar un WSUS en mi único servidor, un RODC.
Al tratar de instalar mi WSUS obtuve el siguiente error:
CInstallDriver::PerformSetup: Installation of wYukon failed (Error 0x80070643: Fatal error during installation.)
Después de dar muchas vueltas y rascarme la cabeza note que en el contenedor Users existían dos grupos que por su descripción y tomando en cuenta el error anterior pues estos parecían estar ligados al WSUS, o al menos a la base de datos de este.
Entonces cree los grupos de seguridad con ámbito local, simplemente cambie hostName por el nombre de su servidor y listo.
SQLServer2005MSFTEUser$hostName$Microsoft##SSEE
SQLServer2005MSSQLUser$hostName$Microsoft##SSEE
Una vez que estos replicaron (repadmin /replicate serverDestino serverFuente DC=dominio,DC=com) al RODC la instalación fue exitosa.


Este mismo truco funciona por ejemplo para instalar la consola administrativa del antivirus Kaspersky, acá se necesitan los siguientes grupos "SQLServer2005SQLBrowserUser$hostName", "SQLServer2005MSSQLServerADHelperUser$hostName" y el "SQLServer2005MSSQLUser$hostName$KAV_CS_ADMIN_KIT".
Estos originalmente son grupos locales, pero al ser esto un DC no hay SAM por ende la necesidad de crearos en AD.
Hasta pronto.

September 16, 2010

El nuevo OCS... digo Lync!

Recuerdan cuando en los medios de instalación de Exchange 2000 existía un disco que nos permitía instalar el Instant Messaging Server… Con su EXIPC (enlace entre IIS 5 y Exchange), RCP (creo que Trillian aun utiliza Rendezvous Protocol, a partir de LCS 2005 utilizamos SIP), FTM, el Locator y otros componentes más… ah y el cliente, claro el Windows Messenger! Bueno como sabemos eso evoluciono luego en LCS, después en OCS y OCS R2 hasta que llegamos con ansias a nuestra actualidad cuando esperamos ver que nos traerá la nueva versión del producto. Creo que lo primero que notaran es que trae un nombre nuevo, ya que ahora en su quinta generación se llama Lync! Y el RC se puede obtener acá http://www.microsoft.com/downloads/en/details.aspx?FamilyID=29366ba5-498f-4d21-bc3e-0b4e8ba58fb1
Para información sobre los requerimientos del sistema http://www.microsoft.com/downloads/en/details.aspx?FamilyID=634a3616-4199-4d51-88ee-618e72d91b7c
Guía de iniciación http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e33765bc-9c5d-49b2-bb4f-ec8d42ccc1c7
Guía de implementación de ambiente de pruebas http://www.microsoft.com/downloads/en/details.aspx?FamilyID=709d1609-a62a-47bd-baa4-6221dfd3c34c
Versión RC de la herramienta de planeamiento http://www.microsoft.com/downloads/en/details.aspx?FamilyID=bcd64040-40c4-4714-9e68-c649785cc43a
Documentación de planeamiento http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2da9fa26-e032-4dcf-b487-da916ddc508f
Introducción a la topología http://blogs.msdn.com/b/jcalev/archive/2010/09/14/lync-topologies-an-introduction.aspx
Portal principal http://www.microsoft.com/en-us/lync/technology-overview.aspx
Pues bien, tenemos juguete nuevo, que se diviertan!

September 11, 2010

Grupos restringidos.

Por medio de las políticas de grupo se pueden manipular incontables aspectos de un equipo, afortunadamente las membresías de grupos locales son uno de estos parámetros manejables. Algo que se presta para confusiones son los “Restricted Groups” o grupos restringidos, recordemos que con esta política podemos agregar usuarios a grupos ya existentes o bien sobre-escribir las membresías de los grupos con una lista determinada por nosotros.
Para modificar dicha política debemos navegar a la siguiente ruta Computer Configuration \ Windows Settings \ Security Settings \ Restricted Groups.
Acá tenemos dos opciones, veamos cómo sacar provecho de ambas aplicándolas a lo que podría ser un escenario realista de nuestro día a día.
En un grupo determinado de equipos necesito que únicamente cierto usuario sea el único miembro del grupo de Administradores locales, esto sería algo autoritativo sobre los valores actuales. En este caso navego a la ruta anterior y en la opción de “Members” agrego a los usuarios de mi lista autoritativa. Esto eliminara a los administradores anteriores. Recordemos que si dejamos a aplicar esta política mi usuario seguirá en la lista de Administradores locales, o sea, se poblaran las membresías por defecto y se mantendrá esta.
Escenario dos, en un grupo determinado de equipos necesito agregar un grupo de seguridad al grupo de Administradores locales. En este caso conservare las membresías anteriores. Acá caso necesito modificar el parámetro “Members of”.
Debemos tener en mente que cual sea nuestra selección por defecto el sistema reaplicara estos parámetros cada 16 horas y únicamente debemos utilizar 1 de estas opciones a la vez.
Hasta pronto!

September 04, 2010

NTP, el gran misterio.

Buenas amigos, hoy escribiendo desde Panamá City, con una magnifica vista de esta bella ciudad.
Mucha gente simplemente lo ignora, pero cuán importante es la sincronización de tiempo en nuestro ambiente? Muchísimo. Recordemos que con un desfase mayor o menor a los 5 minutos Kerberos no te emitirá tiquetes, Office Communicator es bastante sensible con respecto al tiempo, también he visto problemas con Exchange, GPOs, NtFrs/DFS y otros. Entonces como configurar esto?
Tomemos en cuenta lo siguiente, para la sincronización de tiempo debemos establecer una cierto tipo de organización, pensemos en una cascada o jerarquía en la cual nuestro PDC-Emulator será el nivel más alto, la autoridad de NTP, luego en el siguiente nivel o estrato están los demás controladores y estos serán consultados por todos los clientes o maquinas miembros del dominio. PDC-Emulator { DCs { clientes. En el caso de tener dominios hijos pues estos consultaran al dominio padre.
Ok, primero configuremos el PDC, en este link http://www.ntp.org/ podemos obtener una lista de NTPs que nos puede ser útil, yo le aconsejaría buscar el más cercano a la localización de los servidores y al menos un par más de respaldo.
Veamos la configuración actual de nuestro PDC ejecutando el siguiente comando: w32tm /dumpreg /subkey:parameters o bien naveguemos en el Registro de Windows a HKLM\System\CurrentControlSer\Services\W32Time\Parameters. Acá para simplificarnos nos concentraremos en los valores del Type (acá se establece el tipo/modo de servidor a consultar/utilizar) y el NtpServer (dirección de el o los servidores).
Entonces vamos a indicarle a nuestro servidor que su fuente de tiempo es un servidor tipo NTP, para los demás controladores, vamos a asegurarnos su fuente de NTP sea tipo NT5DS.
Entonces primero digámosle a nuestro PDC la dirección o FQDN de nuestros servidores primarios, recordemos que NTP utiliza el puerto 123 en UDP.
w32tm /config /manualpeerlist: ”gnomon.cc.columbia.edu,0x8 navobs1.gatech.edu,0x8 ntp2.usno.navy.mil,0x8 tick.mit.edu,0x8 time.nist.gov,0x8 ” /update
Ahora básicamente indicaremos al equipo que utilice la lista anterior y que se actualice.
w32tm /config /syncfromflags:MANUAL /update
Si el resultado es satisfactorio podremos observar un evento número 37 en la sección del Sistema en el Visor de Eventos, algo similar a esto:

Event Type: Information
Event Source: W32Time
Event Category: None
Event ID: 37
Date: 9/4/2010
Time: 7:57:18 AM
User: N/A
Computer: hostName
Description:
The time provider NtpClient is currently receiving valid time data from ntpServerFQDN (ntp.d
ntpClient->ntpServer:123).

Pensemos que en nuestro dominio raíz tenemos 3 controladores, entonces la configuración de estos se vería más o menos así:

w32tm /dumpreg /subkey:parameters /computer:domainControllerA(PDC-Emulator)
Value Name Value Type Value Data
-------------------------------------------------
ServiceMain REG_SZ SvchostEntry_W32Time
ServiceDll REG_EXPAND_SZ C:\WINNT\system32\w32time.dll
NtpServer REG_SZ gnomon.cc.columbia.edu,0x8 navobs1.gatech.edu,0x8 ntp2.usno.navy.mil,0x8 tick.mit.edu,0x8 time.nist.gov,0x8
Type REG_SZ NTP

w32tm /dumpreg /subkey:parameters /:domainControllerB
Value Name Value Type Value Data
-------------------------------------------------
ServiceMain REG_SZ SvchostEntry_W32Time
ServiceDll REG_EXPAND_SZ C:\WINNT\system32\w32time.dll
NtpServer REG_SZ
Type REG_SZ NT5DS

w32tm /dumpreg /subkey:parameters /:domainControllerC
Value Name Value Type Value Data
-------------------------------------------------
ServiceMain REG_SZ SvchostEntry_W32Time
ServiceDll REG_EXPAND_SZ C:\WINNT\system32\w32time.dll
NtpServer REG_SZ
Type REG_SZ NT5DS

Ahora bien como averiguo el estado del tiempo entre mis controladores de dominio, pues para esto tan solo necesito emitir un w32tm /monitor

w32tm /monitor /domain:daemonroot.com
domainControllerA *** PDC *** [192.168.1.22]:
ICMP: 0ms delay.
NTP: +0.0000000s offset from domainControllerA
RefID: navobs1.gatech.edu [130.207.244.240]
*Nótese que en el primer controlador enlistado es mi PDC, acá puedo también ver contra que servidor está funcionando él.

domainControllerB [192.168.1.23]:
ICMP: 0ms delay.
NTP: -0.0115700s offset from domainControllerA
RefID: domainControllerA [192.168.1.22]

domainControllerC [192.168.1.24]:
ICMP: 99ms delay.
NTP: +0.0156915s offset from domainControllerA
RefID: domainControllerA [192.168.1.22]
*En el caso de los controladores adicionales lo que me interesa es saber cuánto es la diferencia de tiempo entre el PDC y ellos, que como vemos en este caso no es mayor a una centésima de Segundo, nada mal eh?

Los equipos miembros del dominio por defecto utilizaran a los controladores de dominio para sincronizar su tiempo (Type = NT5DS). Si aún tenemos problemas con algún equipo el comando w32tm /config /computer:hostName /update nos podría ser muy útil o bien un w32tm /config /syncfromflags:DOMHIER /update no más para asegurarnos que el equipo está configurado apropiadamente ya que como sabemos hay clientes muy singulares que gustan cambiar parámetros de configuración pues “ellos saben de esto”.
Bueno estimados lectores espero esto les sea útil de alguna manera, realmente no es una guía autoritativa ni nada similar, este es un interesante tema del que podríamos hablar mucho más pero ya es TIEMPO de que me marche, hasta la próxima!

August 09, 2010

Manejando bitácoras

En el siguiente escenario manejaremos la bitácora del servicio NetLogon, la cual se registra en el archivo netlogon.log, el cual se almacena en la ruta %windir%\Debug, podría ser cualquier archivo pero me gusta la idea de explicarlo con este específicamente.
Presentare dos soluciones (si es que les puedo llamar así) para tratar de abarcar más escenarios y así que eso le sea útil a mas personas.
Primero, en este caso utilizaremos WinRAR para archivar el archivo antiguo, además tendremos un repositorio común, el cual representaremos con la unidad Z, en la cual encontraremos una serie de folders llamados archive-%hostname% (%hostname% = el nombre de tu equipo).
Alternativamente podría agregar la ruta de instalación de WinRAR a la variable PATH, para asi no tener que especificar la ruta completa del utilitario (SETX PATH "%PATH%;C:\Program Files\WinRAR\" –M)
A continuación la serie de comandos para lograr nuestro objetivo.


# necesitamos detener el servicio para reemplazar la bitácora
Stop-Service netlogon
# esperamos unos segundos para que el servicio se detenga completamente
Start-Sleep -Seconds 7
#invocamos el utilitario RAR.exe, le indicamos crear un archivo llamado netlog-archiveYYYY-MM-DD-HH-MM-SS.rar (año-mes-día-hora-minuto-segundo), utilizaremos el nivel máximo de compresión (m5), indicamos el archivo a comprimir, eso sí solo el archivo, sin su ruta de carpetas (ep) y luego lo eliminamos (df).
"C:\Program Files\WinRAR\rar.exe" a Z:\archive-%hostname%\netlog-archive.rar -ag[YYYY-MM-DD-HH-MM-SS] -m5 C:\Windows\Debug\netlogon.log -ep -df
# ahora simplemente iniciamos el servicio y listo!
Start-Service netlogon

En el siguiente caso no tenemos un utilitario de compresión así que haremos un poco de rotación de bitácoras, tambien utilizaremos comandos de batch, en el ejemplo anterior el sabor era PowerShell asi que variemos un poco.


# eliminamos el archivo más antiguo (versión 0 = más reciente, versión 2= mas antiguo)
del C:\Windows\Debug\netlogon-2.log
# la version 1 es renombrada a version 2
ren C:\Windows\Debug\netlogon-1.log C:\Windows\Debug\netlogon-2.log
# la version 0 es renombrada a version 1
ren C:\Windows\Debug\netlogon-0.log C:\Windows\Debug\netlogon-1.log
# detenemos el servicio del netlogon
net stop netlogon
# esperamos un tiempo prudencial para que este se detenga por completo
Start-Sleep -Seconds 7
# renombramos el archivo original a version 0
ren C:\Windows\Debug\netlogon.log C:\Windows\Debug\netlogon-0.log
# iniciamos el servicio
net start netlogon
# esperamos un tiempo prudencial para que este inicie satisfactoriamente
Start-Sleep -Seconds 7
# ahora para referencia guardaremos la fecha de ejecución en el archivo aquí mencionado
date /t && time /t >>C:\Windows\Debug\renombradoLog.txt
# tambien registraremos el estado del servicio luego de ejecutar esta tarea
sc query netlogon >>C:\Windows\Debug\renombradoLog.txt

*En Windows Server 2008 no existe ni wait ni sleep por lo cual recurro al cmdlet Start-Sleep
**El comando now se puede usar para reemplazar la parte de “date /t && time /t
Como vemos estas tareas son bastante flexibles y las líneas de una se pueden complementar con otras, también si usted gusta del sabor de WinZip podría entonces utilizar wzzip.
Espero esto les sea útil y les facilite un poco las cosas, hasta pronto!

July 31, 2010

Configurando mi Server Core...

Como te abras dado cuenta ciertos snap-ins que te permiten conectar remotamente a otros equipos no funcionan en Server Core... o al menos no hasta que hagamos los ajustes apropiados.
En lo personal yo agrupo mis Core para razones de parcheo y pues para no crear otra política más por ahí también configuro uno que otro parámetro para estos, desde luego hay excepciones y N casos, usted es quien conoce su ambiente/cliente.
Primero vamos a activar el Device Manager, esto lo haremos habilitando siguiente GPO Computer Configuration/Policies/Administrative Templates/System/Device Installation/Allow remote access to the PnP interface.
Ahora bien… hace un par de días tenía que crear ciertos arreglos de discos pero acá no hay consola de Disk Management! Claro, si iniciamos el servicio de Virtual Disk (net start VDS) y ajustamos las reglas del firewall (netsh advfirewall firewall set rule group=”Remote Volume Management” new enable=yes) podremos desde una consola remota manejar los discos de nuestro servidor.
Con el comando anterior podremos también habilitar otras consolas remotas, esto simplemente al ejecutar el mismo comando pero cambiando el nombre del grupo y así de sencillo se realizaran los ajustes adecuados en el Windows Firewall.
Event Viewer = netsh advfirewall firewall set rule group=”Remote Event Log Management” new enable=yes
Services = netsh advfirewall firewall set rule group=”Remote Service Management” new enable=yes
Shared Folders = netsh advfirewall firewall set rule group=”File and Printer Sharing” new enable=yes
Task Scheduler = netsh advfirewall firewall set rule group=”Remote Scheduled Tasks Management” new enable=yes
Reliability and Performance = netsh advfirewall firewall set rule group=”Performance Logs and Alerts” new enable=yes y también deberá ejecutarse este comando netsh advfirewall firewall set rule group=”File and Printer Sharing” new enable=yes
Windows Firewall with Advanced Security = netsh advfirewall firewall set rule group=”Windows Firewall Remote Management” new enable=yes
Hyper-V = netsh advfirewall firewall set rule group=”Windows Management Instrumentation (WMI)” new enable=yes y después necesitamos agregar el/los usuarios del dominio al grupo local de Distributed COM User, esto mediante el comando net localgroup “Distributed COM Users” /add daemonroot\dannycs
IPSec Management = cscript %systemroot%\system32\SCregEdit.wsf /im 1
Terminal Services (legacy) = cscript %systemroot%\system32\SCregEdit.wsf /cs 0

Si bien usted necesita implementar coutas de disco imagino ya noto que aunque podamos mapear la unidad esta opción no existe, por lo cual debemos ejecutar un par de pasos, el primero para habilitarle y el segundo para asignar las cuotas (en este ejemplo la cuota se habilitara para la unidad F, dándole al usuario dannycs una cuota de 1.5GBs y ejecutando la alerta al llegar a 1GB de utilización.
fsutil quota enforce F:
fsutil quota modify F: 1073741824 1610612736 dannycs
Como referencia puede también leer mi artículo anterior http://telnet25.blogspot.com/2010/05/server-core-rodc.html
Bueno, espero esto les sea útil y se diviertan mucho son sus Server Core.