May 29, 2010

Remote Desktop Connection Manager

Remote Desktop no es mi fuerte, pero échenle un ojo a este utilitario que fue publicado hace un par de días.
Sinceramente me gusta más que mi MMC personalizada con N iconos para Remote Desktop y me simplifica un poco las cosas!
http://www.microsoft.com/downloads/details.aspx?FamilyID=4603c621-6de7-4ccb-9f51-d53dc7e48047&displaylang=en

AD dañando, a limpiar Metadata.

Por una serie eventos desafortunados llegue a un punto en que mis controladores no replicaban entre si pues “habían” dos referencias de más a controladores inexistentes.
Si miramos la imagen adjunta notaremos que en el OU de Domain Controllers hay tres objetos, pero en la partición de Configuración hay cinco, eso no es bueno :S
Intente remover dichos objetos con LDP, ADmod y DSRM pero no lo logre por lo cual recurrí a la herramienta NTDSUtil, esto es lo que yo llamo “operando AD a corazón abierto”
Los comandos estan en MAYUSCULAS y los comentarios los antecede el signo numeral.


NTDSUTIL
# Selecciono la opción de limpieza del Meta Data.
MET CLE
# Me conecto y autentico a un controlador, este de hecho es mi maestro de operaciones para todos los roles.
SEL OPE TAR
CON

# “set cre” se utiliza para establecer los credenciales, especificando dominio, usuario y contraseña. Esto en caso de que no deseemos utilizar las credenciales actuales.
SET CRE daemonroot root Exchange14!
# Acá establezco la conexión con el servidor.
CON TO SER nemesis
QUI
# En esta sección voy a enlistar mis objetos con “lis” y luego selecciono el que deseo manipular con “sel” y el número del objeto.
LIS DOM
Found 1 domain(s)
0 - DC=daemonroot,DC=com
SEL DOM #
LIS NAM CON
Found 5 Naming Context(s)
0 - CN=Configuration,DC=daemonroot,DC=com
1 - DC=daemonroot,DC=com
2 - CN=Schema,CN=Configuration,DC=daemonroot,DC=com
3 - DC=DomainDnsZones,DC=daemonroot,DC=com
4 - DC=ForestDnsZones,DC=daemonroot,DC=com
SEL NAM CON #
LIS SIT
Found 1 site(s)
0 - CN=daemonHQ,CN=Sites,CN=Configuration,DC=daemonroot,DC=com
SEL SIT #
LIS SER IN SIT
Found 5 server(s)
0 - CN=NEMESIS,CN=Servers,CN=daemonHQ,CN=Sites,CN=Configuration,DC=daemonroot,DC=com
1 - CN=HADES,CN=Servers,CN=daemonHQ,CN=Sites,CN=Configuration,DC=daemonroot,DC=com
2 - CN=AQUERONTE,CN=Servers,CN=daemonHQ,CN=Sites,CN=Configuration,DC=daemonroot,DC=com
3 - CN=KERBEROS,CN=Servers,CN=daemonHQ,CN=Sites,CN=Configuration,DC=daemonroot,DC=com
4 - CN=CERBEROS,CN=Servers,CN=daemonHQ,CN=Sites,CN=Configuration,DC=daemonroot,DC=com

# Notese el registro de los cinco controladores. En el siguiente paso seleccionare uno de estos para eliminarlo.
SEL SER #
# Verifico mi selección.
LIS CUR SEL
select operation target: LIS CUR SEL
Site - CN=daemonHQ,CN=Sites,CN=Configuration,DC=daemonroot,DC=com
Domain - DC=daemonroot,DC=com
Server - CN=CERBEROS,CN=Servers,CN=daemonHQ,CN=Sites,CN=Configuration,DC=daemonroot,DC=com
DSA object - CN=NTDS Settings,CN=NEMESIS,CN=Servers,CN=daemonHQ,CN=Sites,CN=Configuration,DC=daemonroot,DC=com
DNS host name - nemesis.daemonroot.com
Computer object - CN=NEMESIS,OU=Domain Controllers,DC=daemonroot,DC=com
QUI
# Y ahora elimino el servidor seleccionado, esto me dará una opción de confirmación, no hace daño leer y verificar que no nos estamos equivocando.
# En mi caso el “Computer Object” no aparecía, acá lo muestro por referencia.
REM SEL SER
# Una vez completado debemos seleccionar el siguiente objeto a remover con “sel xx”
# También podemos eliminar objetos debajo del controlador, dominios y/o contextos de nombre.
QUI
QUI
QUI

Luego de eliminar los objetos malignos y verificar el Metadata simplemente cierro la herramienta, ejecuto un “REPADMIN /SYNCALL” y espero llegar a un punto de convergencia.
Los comandos en NTDSUtil yo los acorto usando las primeras tres letras, para simplificarnos, si usted prefiere puede escribir “remove selected server” o evitar el desgaste de la yema de sus dedos y solo usar “rem sel ser”, es cuestión de gustos.
Como hemos visto NTDSUtil es una herramienta extremadamente útil, desde luego antes de utilizarla realice respaldos y verifique cada comando antes de emitirlo pues podría usted causar un severo daño a su directorio; gracias a Dios estas advertencias son ignoradas y asi yo tengo trabajo.

May 28, 2010

Server Core / RODC

En la red en encontrado N artículos referentes a Windows Server Core, pero en mi humilde opinión algunos son muy genéricos y a otros les falta un par de cosas por lo cual aquí voy!
Primero les comento que los comando estarán escritos en Italics para así no confundirnos y el nombre de mi host es “cerberos”.
Tomando en cuenta que la instalación de Windows genera un nombre aleatorio para los equipos, esto será lo primero que cambiaremos.
Primero necesitamos saber el nombre actual, esto con el comando hostname, luego lo cambiaremos.
hostname
netdom renamecomputer "elNombreQueObtuvimosAnteriormente" /NewName:cerberos
Necesitará reiniciar el equipo para que el cambio tome efecto.
shutdown /t 0 /r
Ahora vamos a asignarle una dirección IP estática.
netsh interface ipv4 show interface. Esto le mostrara las interfaces, en mi caso yo utilizo Hyper-V y por alguna razón mis Server Core (ya sea 2008 o 2008R2) no me reconocieron la NIC regular, por lo cual tuve que instalar un Legacy NIC. Acá el comando pnputil le puede ser útil para instalar las tarjetas u otros dispositivos.
netsh interface set interface name="Local Area Connection #" newname=LAN0. Por razones personales me irrita eso de "Local Area Connection #" así que utilizo una nomenclatura similar a LAN0, WAN1, TEAM2, BRIDGE0… por orden y un poco de estética, por lo cual con el comando anterior e renombrado la conexión.
netsh interface ipv4 set address name="LAN0" source=static address=0.0.0.0 mask=0.0.0.0 gateway=0.0.0.0 . Lista la dirección IP, mascara de subred y puerta de enlace.
netsh interface ipv4 add dnsserver name="" address=0.0.0.22 index=1
netsh interface ipv4 add dnsserver name="" address=0.0.0.23 index=2

Si usted tiene más de un servidor DNS agréguelos usando el comando anterior, eso sí aumentando el número del index, esto es la prioridad con que se consultaran los servidores DNS.
Ahora bien, confirmemos la comunicación y resolución de nombres.
Si el paso anterior es satisfactorio entonces procedamos a la promoción del controlador. Como sabemos el DCPROMO es una herramienta gráfica así que acá variaremos un poco las cosas y lo haremos por la consola, simplemente le brindaremos un archivo de respuesta y kaboom!
Afortunadamente podemos en el mismo Server Core invocar el notepad o bien crear el archivo y transferirlo por la red.
Este es un archivo que le puede servir de guía, nótese que al utilizarse el sistema elimina las contraseñas eliminadas en este, sea o no satisfactorio su resultado.
[DCINSTALL]
UserName=root
UserDomain=daemonroot
Password=
SiteName=daemonHQ
ReplicaOrNewDomain=ReadOnlyReplica
ReplicaDomainDNSName=daemonroot.com
DatabasePath="%systemroot%\NTDS"
LogPath="%systemroot%\NTDS"
SYSVOLPath="%systemroot%\SYSVOL"
ConfirmGC=yes
InstallDNS=yes
SafeModeAdminPassword=
RebootOnCompletion=yes
Si no deseamos un RODC podríamos poner el valor Replica en la línea “ReplicaOrNewDomain=”
Para más información refiérase a http://support.microsoft.com/kb/947034
Bien ejecutemos el comando, como verán el proceso es bastante explicito, asi que cualquier error lo podremos ver fácilmente e investigar.
dcpromo /answer:archivo-respuesta.txt
En este punto su nuevo y feliz RODC debería de reiniciar y usted con suerte ordenar una pizza para celebrar.
Ahora vamos con los últimos pasos, activar la llave del producto, activar Windows Update (aunque imagino tiene usted una implementación solida de WSUS), habilitar Remote Desktop o bien utilice psexec :-P
Los scripts que necistamos para estar tareas están en %systemroot%\system32.
Para ingresar el Product Key:
cscript slmgr -ipk abcde-12345-abcde-12345-abcde
Para activar su copia de Windows:
cscript slmgr -ato
Para habilitar las actualizaciones de Windows:
cscript %systemroot%\system32\scregedit.wsf /au 4
Para habilitar RDP:
cscript %systemroot%\system32\scregedit.wsf /ar 0
Para habilitar RDP atravez del firewall:
netsh advfirewall firewall set rule group="Remote Desktop" new enable=yes
Por último, en mi caso siempre instalo ciertos utilitarios y juguetes mis servidores, como soy muy perezoso me gusta ahorrar tecleos por lo cual en vez de navegar a mi ruta de utilitarios simplemente agrego esta a la variable del sistema llamada PATH, reinicio y listo!
SETX PATH "%PATH%;C:\tools" -M
Desde luego hay varias formas de promover un RODC, esta es tan solo una de ellas, espero mi aporte le sea útil
Hasta la proxima!

May 27, 2010

Lista de SMTP relays borrada.

Me he encontrado con un par de casos en donde se achaca al KB976323 haber eliminado la lista de SMTP relays. Así que les comento para que tomen las medidas preventivas antes de implementarlo. Imagino esto está en investigación y pronto saldrá una actualización para este parche. http://support.microsoft.com/kb/976323
De hecho si visitan el hipervínculo anterior notaran que se hizo una actualización al artículo el pasado 20 de Abril y en dicho artículo se recomienda manualmente respaldar la información del SMTP.

May 20, 2010

Y que versión tenemos?

Saber la versión de un archivo es relativamente sencillo con el utilitario filever, pero y si necesito esta información de 100 equipos o más?
En este caso vamos a averiguar la versión del dcpromo.exe, la lista de equipos está en el archivo de texto que indica la línea del comando (G:\workingDir\lista-hosts.txt).
for /f %a in (G:\workingDir\lista-hosts.txt) do echo %a >>version-dcpromo.log & filever //%a/c$/Windows/system32/dcpromo.exe >> version-dcpromo.log
Y listo!

Rendimiento y almacenaje de Exchange...

Se queja usted del rendimiento que obtiene de su servidor de Exchange?
Veamos tres puntos rápidos sobre el almacenaje que nos podrían ayudar.
1- Por defecto Windows crea la partición a partir del sector 64 del disco, lo cual causa una alineación de la partición con la estructura del disco no optima (esto no aplica en Windows 2008).
Mientras que Diskpart.exe permite crear particiones con los sectores alineados, lo cual incrementa el rendimiento hasta en un 20%.
Si desea hacer pruebas de rendimiento a los discos puede utilizar WINSAT http://technet.microsoft.com/en-us/library/cc742157(WS.10).aspx
Como referencia sobre la creación de particiones adjunto estos hipervínculos http://support.microsoft.com/kb/929491 & http://technet.microsoft.com/en-us/library/cc770877(WS.10).aspx & http://support.microsoft.com/kb/300415
2- "Disk timeout is not set at default" curiosamente el ExBPA captura esto, pero en mi humilde opinión no lo marca con la severidad que merece. Eh visto casos donde una configuración incorrecta acá causa retrasos de hasta 15 minutos en el intercambio de correo, al ajustarlo apropiadamente y reiniciar el equipo el intercambio de correos con terceros se ejecutaba en menos de 1 minuto ( = cliente feliz = factura cancelada rápido = de compras en Amazon).
Para referencia http://technet.microsoft.com/en-us/library/aa997069(EXCHG.80).aspx
3- Es usted de esos que compra 1 disco de 500GBs y listo... mejor usemos arreglos! Son muchas las ocasiones en que tenemos la capacidad (tarjetas controladoras y bahías disponibles) pero simplemente no hacemos la inversión en discos (que cada día son más baratos), claro esta mentalidad cambia hasta que perdemos los datos... Y recuerden lo ideal es una partición o volumen para las bases de datos y otra para las bitácoras... de preferencia que los discos de los logs sean lo más rápidos (15K RPM) Igualmente se aconseja separar las colas de transferencia y la carpeta TEMP también ya que acá se ejecuta la conversión de contenido, en especial en organizaciones mixtas.
Les adjunto esta imagen para su referencia.

Hasta pronto!

May 04, 2010

Cambiando el banner de SMTP.

Por defecto al hacer Telnet a nuestro servidor de correo la respuesta es algo como "220 hostFQDN Protocolo versión de Exchange ready at fecha, hora y zona horaria" lo cual en ciertos casos es problemático, por ejemplo cuando otros hacen un reverse lookup, esto pues la respuesta obtenida acá muy probablemente no concuerde con nuestro registro MX.
Por lo cual veremos cómo cambiar esto rápidamente mediante el siguiente comando:
Set-ReceiveConnector -Identity "Nemesis\25" -Banner "220 mail.daemonroot.com"
Notese que acá mi conector de recepción se llama "Nemesis\25", de paso cambiare un par de parámetros más como la cantidad máxima de destinatarios de 5000 a 500 (aunque mi organización soy y yo mi otro yo, pero 500 está bien), también cambio los parámetros de expiración de la sesión de 10 y 5 minutos a 5 y 3 en el tiempo de vida de la sesión y el tiempo máximo de inactividad respectivamente (nada hago con N sesiones abiertas por tanto tiempo en mi humilde conexión en mi humilde ambiente virtual).
Primero podría verificar la configuración actual, luego ejecuto cambios, verifico y reinicio el servicio del MSExchangeTransport para que los cambios tomen efecto.
Get-ReceiveConnector -Identity nemesis\25
Set-ReceiveConnector -Identity "Nemesis\25" -Banner "220 mail.daemonroot.com" -MaxRecipientsPerMessage 500 -DefaultDomain daemonroot.com -ConnectionTimeout 00:05:00 -ConnectionInactivityTimeout 00:03:00
Get-ReceiveConnector -Identity nemesis\25 FL Name,Banner,MaxRecipientsPerMessage,DefaultDomain,Bindings,ConnectionTimeOut,ConnectionInactivityTimeout,Server,Identity Restart-Service MSExchangeTransport





*Les recomiendo dejar el “220” pues este indica que el servidor está listo para la transferencia.

* Aplica para Exchange 2007 y 2010.