Remy Porter publicó este artículo de CodeSOD en The Daily WTF el 15 de septiembre de 2026. Alice había enviado un script de PowerShell para un informe habitual de Active Directory. El programa debe mostrar el nombre de cada usuario y su última hora de inicio de sesión. Ella presentó la versión como limpiada y con la indentación corregida.
El script avanza de la a a la z. Para cada letra crea un `System.DirectoryServices.DirectoryEntry` y un `System.DirectoryServices.DirectorySearcher`, filtra los nombres que empiezan por ese carácter, solicita la propiedad `name` y recorre los resultados. Después crea otro `DirectorySearcher` para cada nombre. Esa consulta busca `objectCategory=User` con el `sAMAccountName` correspondiente y escribe `name` junto con `lastLogon`.
El recorrido por letras agrupa las cuentas por inicial. El orden interno de cada grupo queda sin definir, por lo que `albert` y `alice` no tienen garantizada esa secuencia. La primera consulta carga solo `name`. La segunda obtiene todos los datos de la cuenta, mientras la salida utiliza dos campos. Para una búsqueda que se espera que devuelva una cuenta, el script recorre `FindAll()`. `FindOne()` encaja con ese caso. Un gerente depende del CSV para trabajarlo en Excel y considera el script una pieza crítica.




Comentarios
Aún no hay comentarios — escribe el primero.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.