Skip to content

Menu
  • Inicio
  • Sobre mi
  • Home
  • 2024
  • marzo
  • 13
  • Comparación entre usuarios y unidades organizativas (OU).
Onpremise

Comparación entre usuarios y unidades organizativas (OU).

Brian Boza Carocamarzo 13, 2024marzo 13, 2024

Share

Facebook
Twitter
Pinterest
LinkedIn
0 0
Read Time:1 Minute, 57 Second

Uno de los desafíos no menores que he enfrentado en mi trayectoria profesional es la ejecución de scripts para distintos tipos de clientes. El siguiente script ha sido de gran utilidad para realizar un análisis muy específico, permitiéndome identificar la unidad organizativa (OU) a la que pertenece un usuario, así como su información de inicio de sesión y si su cuenta está habilitada o no.

Para incluir el atributo lastLogon en el script , que recorre todas las Unidades Organizativas (OU) obteniendo el sAMAccountName, mail, a qué OU pertenece cada usuario, y luego guarda esta información en un archivo CSV, necesitarás hacer un pequeño ajuste. Es importante mencionar que lastLogon es un atributo que no se replica entre los controladores de dominio. Esto significa que si tienes más de un controlador de dominio, podrías no obtener el último inicio de sesión real a menos que consultes todos ellos y determines cuál es el más reciente. Sin embargo, para simplificar, puedes usar lastLogonTimestamp, que es una aproximación replicada del lastLogon y es suficiente para la mayoría de los propósitos administrativos.

# Define la ruta del archivo CSV donde se guardarán los resultados
$rutaArchivoCSV = "C:\PowerShell\UsuariosYsusOUsv1.csv"

# Obtener todas las OUs
$ous = Get-ADOrganizationalUnit -Filter * 

# Lista para almacenar los resultados
$resultados = @()

foreach ($ou in $ous) {
    # Obtener usuarios en la OU actual
    $usuarios = Get-ADUser -Filter * -SearchBase $ou.DistinguishedName -Properties *
    #-Properties sAMAccountName, mail, lastLogonTimestamp
    
    # Añadir la información de cada usuario a la lista de resultados
    foreach ($usuario in $usuarios) {
        $lastLogon = $usuario.lastLogonTimestamp
        # Convertir lastLogonTimestamp a DateTime
        if ($lastLogon -ne $null) {
            $lastLogonDate = [DateTime]::FromFileTime($lastLogon)
        } else {
            $lastLogonDate = "Nunca"
        }

        $resultados += [PSCustomObject]@{
            sAMAccountName = $usuario.sAMAccountName
            UserPrincipalName =$usuario.UserPrincipalName
            Mail = $usuario.mail
            DisplayName = $usuario.DisplayName
            Enabled=$usuario.Enabled
            Fax =$usuario.Fax
            Description =$usuario.Description
            whenCreated=$usuario.whenCreated
            proxyAddresses=$usuario.proxyAddresses
            OU = $ou.DistinguishedName
            LastLogon = $lastLogonDate
        }
    }
}

# Exportar resultados a CSV
$resultados | Export-Csv -Path $rutaArchivoCSV -NoTypeInformation -Encoding UTF8

Write-Host "Los datos han sido exportados a '$rutaArchivoCSV'"

Este script ahora también recupera lastLogonTimestamp para cada usuario y lo convierte a un formato de fecha y hora legible (DateTime). La conversión se realiza mediante [DateTime]::FromFileTime($lastLogon), lo cual es necesario porque lastLogonTimestamp se almacena como un valor de tiempo de archivo de Windows. En caso de que el usuario nunca haya iniciado sesión, se muestra «Nunca».

Understanding the AD Account attributes – LastLogon, LastLogonTimeStamp and LastLogonDate | Microsoft Learn

About Post Author

Brian Boza Caroca

Con una trayectoria de más de 9 años, me he consolidado como un aporte en implementar soluciones de seguridad IT y gestionar ambientes híbridos. Mi experiencia como Especialista Microsoft me ha permitido profundizar en tecnologías de vanguardia y adaptarme a los desafíos emergentes en el campo de la seguridad informática.
brian.boza@hotmail.com
Happy
Happy
0 0 %
Sad
Sad
0 0 %
Excited
Excited
0 0 %
Sleepy
Sleepy
0 0 %
Angry
Angry
0 0 %
Surprise
Surprise
0 0 %

Navegación de entradas

Previous

Previous post:

Asegúrese de que los proveedores de almacenamiento adicionales estén restringidos en Outlook en la Web.

Next

Next post:

Protección con contraseña definida.

Previous post Asegúrese de que los proveedores de almacenamiento adicionales estén restringidos en Outlook en la Web.
Next post Protección con contraseña definida.

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%
(Add your review)

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Categorías

  • Azure
  • Exchange Online
  • Intune
  • Microsoft EDGE
  • Microsoft graph
  • Microsoft Teams
  • OneDrive
  • Onpremise
  • PowerBI
  • SCCM
  • Seguridad

Entradas recientes

  • Informe Graph Intune

Acceso

  • Acceder
  • Feed de entradas
  • Feed de comentarios
  • WordPress.org
LinkedIn
LinkedIn
Tweets by BozaCaroca

Close
Menu
  • Inicio
  • Sobre mi

Related Post

Cálculo de capacidad y espacio disponible en bases de buzones de Exchange con PowerShell

mayo 13, 2024marzo 23, 2026

Quitar usuarios del grupo de administradores locales mediante la directiva de grupo

enero 23, 2023enero 31, 2024

Configurar MDT

agosto 10, 2021enero 31, 2024