Búsqueda de sitios web

Obtenga información de Active Directory con el script de PowerShell


¿Cómo obtener información de Active Directory en una sola salida? Por ejemplo, desea migrar Active Directory a un nuevo servidor y desea obtener la información de AD. ¿O le gustaría saber cuántas estaciones de trabajo, servidores o grupos hay presentes en AD? En este artículo, aprenderá cómo obtener información de Active Directory con un script de PowerShell.

Obtener script de PowerShell de información de AD

El script de PowerShell Get-ADInfo.ps1 obtendrá la siguiente información de AD:

  1. Computadoras (Estaciones de trabajo + Servidores)

  2. Estaciones de trabajo

  3. Servidores

  4. Usuarios

  5. Grupos

  6. Nombre del bosque de Active Directory

  7. Modo bosque de Active Directory

  8. Modo de dominio de Active Directory

  9. Versión del esquema de Active Directory

  10. Propietarios de roles FSMO

Descargar el script de PowerShell para obtener información de AD

Descargue y coloque el script de PowerShell Get-ADInfo.ps1 en la carpeta C:\scripts. Si no tiene una carpeta de scripts, cree una.

Asegúrese de que el archivo esté desbloqueado para evitar errores al ejecutar el script. Lea más en el artículo Error sin firma digital al ejecutar el script de PowerShell.

Otra opción es copiar y pegar el siguiente código en el Bloc de notas. Asígnele el nombre Get-ADInfo.ps1 y colóquelo en la carpeta C:\scripts.

<#
    Author:       ALI TAJRAN
    Website:      www.alitajran.com
    LinkedIn:     linkedin.com/in/alitajran
    Date:         01/07/2023
    Description:  Get Active Directory information
#>

# Get AD info
$Computers = (Get-ADComputer -Filter *).count
$Workstations = (Get-ADComputer -LDAPFilter "(&(objectClass=Computer)(!operatingSystem=*server*))" -Searchbase (Get-ADDomain).distinguishedName).count
$Servers = (Get-ADComputer -LDAPFilter "(&(objectClass=Computer)(operatingSystem=*server*))" -Searchbase (Get-ADDomain).distinguishedName).count
$Users = (Get-ADUser -Filter *).count 
$Groups = (Get-ADGroup -Filter *).Count
$ADForest = (Get-ADDomain).Forest
$FSMO = netdom query FSMO
$ADForestMode = (Get-ADForest).ForestMode
$ADDomainMode = (Get-ADDomain).DomainMode
$ADVer = Get-ADObject (Get-ADRootDSE).schemaNamingContext -property objectVersion | Select objectVersion
$ADNUM = $ADVer -replace "@{objectVersion=", "" -replace "}", ""

If ($ADNum -eq '88') { $srv = 'Windows Server 2019/Windows Server 2022' }
ElseIf ($ADNum -eq '87') { $srv = 'Windows Server 2016' }
ElseIf ($ADNum -eq '69') { $srv = 'Windows Server 2012 R2' }
ElseIf ($ADNum -eq '56') { $srv = 'Windows Server 2012' }
ElseIf ($ADNum -eq '47') { $srv = 'Windows Server 2008 R2' }
ElseIf ($ADNum -eq '44') { $srv = 'Windows Server 2008' }
ElseIf ($ADNum -eq '31') { $srv = 'Windows Server 2003 R2' }
ElseIf ($ADNum -eq '30') { $srv = 'Windows Server 2003' }

Write-host "Active Directory Info" -ForegroundColor Yellow
Write-host ""
Write-Host "Computers =    "$Computers -ForegroundColor Cyan
Write-Host "Workstions =   "$Workstations -ForegroundColor Cyan
Write-Host "Servers =      "$Servers -ForegroundColor Cyan
Write-Host "Users =        "$Users -ForegroundColor Cyan
Write-Host "Groups =       "$Groups -ForegroundColor Cyan
Write-host ""
Write-Host "Active Directory Forest Name =  "$ADForest -ForegroundColor Cyan
Write-Host "Active Directory Forest Mode =  "$ADForestMode -ForegroundColor Cyan
Write-Host "Active Directory Domain Mode =  "$ADDomainMode -ForegroundColor Cyan
Write-Host "Active Directory Schema Version is $ADNum which corresponds to $Srv" -ForegroundColor Cyan
Write-Host ""
Write-Host "FSMO Role Owners" -ForegroundColor Cyan
$FSMO

Ejecute el script de PowerShell para obtener información de AD

Ejecute PowerShell como administrador. Cambie la ruta a la carpeta de scripts. Luego, ejecute el script de PowerShell para recopilar la información de Active Directory.

PS C:\> cd c:\scripts
PS C:\scripts> .\Get-ADInfo.ps1

Así es como se ve el resultado en nuestra organización.

Active Directory Info

Computers =     8
Workstions =    3
Servers =       5
Users =         5143
Groups =        88

Active Directory Forest Name =   exoip.local
Active Directory Forest Mode =   Windows2016Forest
Active Directory Domain Mode =   Windows2016Domain
Active Directory Schema Version is 88 which corresponds to Windows Server 2019/Windows Server 2022

FSMO Role Owners
Schema master               DC01-2019.exoip.local
Domain naming master        DC01-2019.exoip.local
PDC                         DC01-2019.exoip.local
RID pool manager            DC01-2019.exoip.local
Infrastructure master       DC01-2019.exoip.local
The command completed successfully.

Aquí hay una captura de pantalla de cómo se ve.

¡Eso es todo!

Leer más: Obtenga todos los controladores de dominio con PowerShell »

Conclusión

Aprendió cómo obtener información de Active Directory con el script de PowerShell. Hay mucha información en Active Directory y buscar la información una por una en PowerShell o la GUI lleva mucho tiempo. Ejecutar un script PS y tenerlo todo en una sola salida ahorra tiempo y es más fácil de ver.

Disfrutaste este artículo? También te puede interesar Exportar usuarios de AD a CSV con PowerShell. No olvides seguirnos y compartir este artículo.

Artículos relacionados