Una característica de Cygwin, que creo que lo convierte en un programa especial, es que permite combinar el uso de comandos nativos de Windows con la potencia del intérprete de comandos bashEn el ejemplo de uso que presento he utilizado la salida del comando addusers.exe (incluido en el Resource Kit descargable desde el site de Microsoft) para consultar detalles de usuarios pertenecientes a un dominio, y mediante un entubado con grep y cut, obtener aquellas cuentas cuyo perfil utilizan un netlogon script determinado.
Un detalle a tener en cuenta es que el usuario que ejecuta la llamada requiere de los permisos necesarios para hacer este tipo de consultas en el dominio al que se pregunta.
Es viable incluir toda la petición en una única linea, aunque aquí he preferido escapar la primera linea, por una cuestión de presentación en el weblog:
nouser@nohost
$ DOMAIN="MIDOMINIO";FILE="addusers.txt";BAT="MiNetlogon.bat";\
> addusers.exe /d $FILE $DOMAIN 1>/dev/null;grep $BAT $FILE|cut -f1 -d,
DBloody
PSmolarek
DDancer
JBicicle
DNotes
APresidente
MPeruvian
JCaja
DMagdalenas
nouser@nohost
$
Como es de suponer, los valores de las tres varibles que encabezan la petición (DOMAIN, FILE y BAT), se deben parametrizar con lo que corresponda en cada caso.
La llamada al addusers.exe genera un fichero $FILE que puede que prefiramos borrar. En ese caso (previo a asegurarse con echo $FILE que la variable no ha perdido el valor que se espera):
nouser@nohost
$ rm -f $FILE
ACTUALIZACION (añadido) (2007-12-08): Cuidado con los espacios en FILE y BAT. En teoría en ese caso habría que encerrar entre comillas dobles cada uno de los usos que hicieramos de las variables... Pero mejor olvisarse de ellos.
ACTUALIZACION (añadido) (2007-12-09): En relación a la actualización anterior, añadir que los espacios en el nombre de los scripts de netlogon quedan totalmente desaconsejados por posibles problemas como el que paso a describir:
- Usuario1, su profile indica el netlogon script "Delegacion.bat"
- Usuario2, su profile indica el netlogon script "Delegacion Departamento.bat"
Se comprueba que en un Active Directory corriendo sobre máquinas con W2K, Usuario1 inicia sesión de forma correcta, pero Usuario2 inicia sesión ejecutando el contenido de "Delegacion.bat" (incorrecto). ¿Motivo? No lo sé, cosas de Windows. Entiendo que el espacio "confunde" al parser del proceso encargado de decidir cual es el script que hay que aplicar.
El problema descrito no ocurre si el netlogon script se llama "Delegacion_Departamento.bat" o "DelegacionDepartamento.bat" (y el respectivo fichero .bat existe en el controlador de dominio, por supuesto).


Inglés a castellano
Anglès a català
Deja tu comentario