¿Tenemos el control de los permisos en nuestro Directorio Activo? – Herramienta AD ACL Scanner.

El otro día me hacía una gran pregunta ¿Tenemos el control de los permisos en nuestro Directorio Activo? ¿Podemos revisar nuestra delegación de permisos en Directorio Activo?, es más ¿Podemos hacer tales cosas rápidamente.

Desde Suecia con amor nos llega una gran herramienta de consulta. Su Plataforma de PFE’s el pasado mayo editó un muy puen Post en su blog (ver aqui), donde hablaban de la herramienta AD ACL Scanner (la podemos descargar desde aqui).

¿Que hace AD ACL Scanner?

¿Quién tiene documentado todos los permisos y la delegación de los mismos en su Directorio Activo? …. Yo no. Mal ejemplo doy. Estoy tenemos que cambiarlo.

Bien, esta herramienta genera informes sobre las listas de control de acceso a nuestro Directorio Activo. Ahora ya no tenemos escusa para no documentarlo.

Para ejecutar esta herramienta/script, necesitamos lo siguiente:

  • PowerShell 2.0 o superior.
  • Windows 7/Windows Server 2008 o superior.
  • Habilitar la ejecución de scripts no firmados => Set-ExecutionPolicy Unrestricted , de andar por casa, o si queremos ser mas selectivos, Set-ExecutionPolicy Unrestricted -Scope CurrentUser

adaclscan0001

 

¿Cómo creamos un informe de una OU?

Básicamente son tres sencillos pasos:

  1. Hacemos click en el botón de Connect la herramienta se conectará a nuestro Directorio Activo o a la partición que necesitemos, Configuración, Dominio, Esquema o Custom.
  2. Nos aparecerá el arbol del Directorio Activo con todas sus Unidades Organizativas donde podremos ir moviendonos y seleccionando.
  3. Cuando hayamos seleccionado una OU, ejecutaremos el escaneo pertinente, o sea, click en botón Run.

Este es un ejemplo de informe:

adaclscan0002

Opciones del Escaner:

  • Por defecto solo se nos mostrará la información sobre la OU en la que estamos. Si queremos también la de todas sus hijas, deschequearemos el botón One Level. No tenemos que preocuparnos si la herramienta tarda en hacer su trabajo, sobre todo en grandes estructuras con infinitas OUs.
  • Si queremos la fecha cuando los permisos fueron modificados tenemos que hacer un check en la opción Replication Medatada, añadiéndonos una columna a nuestro informe con dicho valor. Veamos otro ejemplo:

adaclscan0003

adaclscan0004

 

  • También podemos visualizar todos los bojetos, cambiado la selección de OU a All Objects.

 

  • Podemos seleccionar que el informe sea formato HTML o CSV o ambos formatos, fijando la ruta de destino del fichero en formato CSV así como podemos intercambiar el resultado entre ambos formatos.

 

Aunque donde esta herramienta demuestra todo su potencial es en los siguientes puntos:

 

Comparaciones.- Podemos comparar el resultado del estado actual con un resultado de un estado previo. Al poder guardar la salida del informe en formato CSV podemos comparar ficheros a lo largo del tiempo y poder descubrir quién tiene ahora permisos que antes no tenía y viceversa.

adaclscan0005

 

Filtrado.- Podemos realizar los siguientes filtros:

 

  • Filtro de permiso de Permitir o Denegar.
  • Filtro por tipo de objeto, como pueden ser Usuarios, contactos, grupos, equipos, etc.
  • Filtro “By Trustee”, o sea por cualquier conjunto de letras que puedan corresponder a algo que se encuentre en nuestro Directorio Activo.

 

Con esta herramienta no se que escusa poner ahora.

Suerte.

Borrar un buzón de usuario pero no el usuario en Exchange 2010..

Hace nada y menos me hicieron una pregunta que creí saber la respuesta aunque nunca se me habia dado el caso.

¿Cómo puedo borrar el buzón de un usuario sin eliminar dicho usuario de Directorio Activo? Pues dije, eliminándolo desde la consola de gestión de Exchange 2010 ….. Failed!!!!

Efectivamente, lo que tenemos que hacer es deshabilitar dicho usuario en el entorno de correo. Dicho y hecho. Buscamos un usuario pardillo para probar

Seleccionamos Deshabilitar (no borrar):

 Nos aparecerá el siguiente mensaje característico:


 Comprobamos en la consola ADU&C que nuestro usuario ya no tiene buzón:

Otro cantar sería que queramos borrar el usuario completamente en nuestro Directorio Activo. En ese caso si podíamos haber hecho un “Remove”.

Gracias Mr. Castillo por la pregunta,

Bibliografía
Whileuno.

Comprobar nuestras relaciones, de confianza.

El año pasado tuve ciertos problemas con las relaciones de confianza entre distintos dominios y, sobre todo, de cómo auditar y comprobar que están activas y funcionando correctamente.

La verdad es que he encontrado poca documentación sobre el tema y he tratado de resumir qué chequeos se pueden realizar y qué herramientas podemos utilizar para asegurarnos de que todo está bien.

Desde una línea de comando, podemos ejecutar el comando Nltest con el parámetro para relaciones de confianza:

Nltest /DOMAIN_TRUSTS

Un ejemplo de la ejecución:

o podemos volcar la información a un fichero y reenviarla por correo, por ejemplo:

Nltest /DOMAIN_TRUSTS > c:trusts.txt

Ademas de a través de la herramienta gráfica de Active Directory Domain & Trusts (ADDT). Abriremos cada relación de confianza y pulsaremos el botón de “Validar”:

Si todo está correcto nos aparecerá el siguiente mensaje:

Otras herramientas que podemos utilizar:

  • Netdom .- comando para establecer o romper relaciones de confianza, podemos ver en este link como funciona y cuales son sus parámetros.
  • Netdiag.- determinadas salidas de este comando nos pueden dar el estatus de nuestras relaciones de confianza.

Por otro lado, tenemos a nuestro amigo Powershell, encontré este script (ver este link), muy interesante que  nos muestra información sobre las relaciones de confianza existentes

Y si queremos rizar el rizo, hace tiempo utilicé esta herramienta gráfica denominada  DCDiag & NetDiag GUI Tool (ver este link: DNGT), para aquellos que no os guste el cmd o powershell, pero ahora me resulta imposible conseguirla. Avisadme si la teneis.

O esta otra, TrustViewer. Desde Codeplex, tenemos esta herramienta que se puede descargar aqui y que, en principio nos aportaba la siguiente información:

  • Trust Flags – In Forest, Direct Outbound, Tree Root, Primary, Native Mode, Direct Inbound
  • Trust Type – Uplevel, Downlevel, MIT, DCE
  • Trust Attributes – Non-transitive, Uplevel Only, Quarantined (Sid-History), Forest Transitive, Cross Organization, Within Forest, Treat As External, Uses RC4 Encryption
  • When the password was last changed on inbound trusts.

vamos, la leche, pero no he conseguido que me funcione correctamente. Si teneis otras formas de hacerlo, no dudes en aleccionarme.

Feliz año 2013.
Nos vemos

Top 10 en tareas de Directorio Activo solucionadas con Powershell. Tarea X. Encontrar equipos por tipo.

Para finalizar esta serie rápida y concisa de diez tareas habituales de un administrador de sistemas realizadas con Powershell vamos a encontrar equipos en Directorio Activo por tipo, tal como Servidor, portatil, sistema operativo, etc.,

Cuando un equipo entra en dominio, se vuelca cierta información sobre Directorio Activo, como por ejemplo y sirviendonos para este Post, el Sistema Operativo

Si ejecutamos el siguiente cmdlet nos mostrará todos los sistemas operativos que tenemos en nuestro Directorio Activo. No extrañaros de lo que aparece:

Get-ADComputer -filter * -Properties OPeratingSystem | Select OperatingSystem -unique | Sort OperatingSystem

Por otro lado, si lo que queremos es saber qué equipos tienen un determinado sistema operativo, ejecutamos el siguiente cmdlet:

Poco mas que contaros, que tengo que actualizar estos equipos obsoletos que me han aparecido.
Saludos y feliz año 2013

Bibliografía:
WindowsITPro.

Top 10 en tareas de Directorio Activo solucionadas con Powershell. Tarea IX. Deshabilitar cuentas de equipo.

Penúltima entrega de esta serie de Post…. y allá vamos.

¿Cómo deshabilitamos una cuenta de equipo?

Disable-ADAccount -Identity ‘RobeznoDC$’ -whatif (ya sabeis que lo del whatif):

Otra forma de hacerlo es mediante un entubado:

Y, enlazándolo con el post anterior, donde hablamos de cuentas de equipo obsoletas, entubamos la salida para deshabilitar todas aquellas cuentas de equipo que estén obsoletas a partir de una fecha:

Ya nos queda solo uno.
Saludos,

Top 10 en tareas de Directorio Activo solucionadas con Powershell. Tarea VIII. Encontrar cuentas obsoletas.

Ya nos queda poquito, de tareas y de año 2012.

Según Jeffery Hicks, autor del artículo y blog en el que me baso para esta serie de Posts sobre tareas habituales de un administrador de Directorio Activo ejecutadas con Powershell, surgen dudas de cómo considerar obsoletas las cuentas de Directorio Activo.

Bien, seguiremos su criterio y definamos que son aquellas cuentas de equipo que la password no ha sido modificado en los últimos 90 dias, asumiendo que si un equipo está mas de 90 dias sin contactar con sus controladores de dominio, deja de poder acceder a los recursos de dicho dominio.

Ejecutando el siguiente cmdlet entubado nos proporciona aquellas cuenta de equipo obsoletas:

Poco mas que decir al respecto.
Un saludo,

Top 10 en tareas de Directorio Activo solucionadas con Powershell. Tarea VII. Enumerar miembros de un grupo.

Otra tarea bastante habitual, en mi caso, la de descubrir qué usuario pertenecen a un grupo.

Get-ADGroupMember ‘nombre del grupo’ nos mostrará todos sus componentes:

Y ¿Qué ocurre cuando hay usuarios anidados? me explico, y ¿si en un grupo tenemos otro grupo que contiene a otros usuarios? En estos casos añadiremos el parámetro -Recursive mostrándonos el siguiente resultado:

En este ejemplo, el grupo SuperUsers está formado por el usuario Ronin y el Grupo Usuarios de Zaragoza. Este último grupo está a su vez formado por el usuario prueba.
Nos vemos.

Top 10 en tareas de Directorio Activo solucionadas con Powershell. Tarea VI. Encontrar grupos vacios.

Ya hemos pasado el ecuador de esta extensa lista de tareas habituales de un administrador y vamos a buscar en Directorio Activo aquellos grupos que no tienen contenido.

Ejecutamos el siguiente cmdlet entubado:

Como veis, nos aparecen grupos creados en Directorio Activo por defecto que, en este caso, no contienen ningún usuario.

Pero, ya sabeis que nos gusta complicarnos un poquito. Aqui os dejo otro ejemplo en el que podemos especificar la OU y el tipo de Grupo, en este caso, Universal, independientemente de si es un grupo de seguridad o una Lista de Distribución:

Que poco nos queda de 2012.
Un saludo

Top 10 en tareas de Directorio Activo solucionadas con Powershell. Tarea V. Añadir miembros a un grupo.

Otra tarea ardua del administrador es la inclusión de usuarios en grupos o listas de distribución. Vamos a añdir a nuestro querido usuario “ronin” al grupo”SuperUsers”:

Comprobamos la inclusión en dicho grupo:

Como veis es muy sencillo, podemos incluir cientos de usuarios a un grupo, independientemente de si es de seguridad o Lista de distribución.

Pongamos un ejemplo mas complejo. Vamos a meter a todos los usuarios que tengan el parámetro “Ciudad”=”Zaragoza” en un grupo denominado “SuperUsers”. Este campo de Directorio Activo se puede ver en la siguiente captura:

Ejecutamos el siguiente cmdlet:

Finiquitado por hoy.
Besos y abrazos.

Top 10 en tareas de Directorio Activo solucionadas con Powershell. Tarea IV. Borrar una cuenta.

Sabemos que desde la consola de ADU&C borrar una cuenta es muy sencillo, pero y ¿si tenemos que borrar múltiples cuentas?

En este caso con Powershell ejecutariamos Remove-ADUser <usuario>
(Aqui he sido un valiente borrando la cuenta que tengo de pruebas)

Pero, ¿si queremos borrar un grupo de usuarios, como por ejemplo, si queremos borrar todas las cuentas que están deshabilitadas dentro de la OU Staging que no han tenido cambios en los últimos 180 dias?

Get-ADUser -filter “enabled -eq ‘false’” -property Whenchanged -SearchBase “OU=Staging,DC=ROBEZNO,DC=com” | where {$_.WhenChanged -le (Get-Date).addDays(-180)} | Remove-ADUser

Como podeis comprobar, el uso de tuberias nos aporta una mayor potencia a Powershell. En este caso primero hemos entubado el resultado de la búsqueda en la OU Staging de aquellas cuentas con “Enabled”=False, vamos, desabilitadas, en un segundo tubo que nos buscará aquellas cuentas que no hayan sido modificadas en los últimos 180 dias, para, finalmente, eliminar el resultado.

Hasta la proxima.