Exportar usuarios locales a Excel
Exportar usuarios locales a Excel
Section titled “Exportar usuarios locales a Excel”Script en PowerShell que obtiene los usuarios locales del equipo, detecta si son administradores y copia todo al portapapeles listo para pegar en Excel.
# 1. Detectamos el nombre del grupo de Administradores de forma segura (funciona en inglés y español)$AdminSID = New-Object System.Security.Principal.SecurityIdentifier("S-1-5-32-544")$AdminGroupName = $AdminSID.Translate([System.Security.Principal.NTAccount]).Value.Split("\")[1]$AdminMembers = Get-LocalGroupMember -Group $AdminGroupName -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Name
# 2. Obtenemos los usuarios locales del equipo$UsuariosLocales = Get-LocalUser
# 3. Procesamos los datos para mantener tus 10 columnas exactas$Resultados = foreach ($u in $UsuariosLocales) { # Validamos si el usuario pertenece al grupo de Administradores $IsAdmin = "NO" if ($AdminMembers -contains "$env:COMPUTERNAME\$($u.Name)" -or $AdminMembers -contains "BUILTIN\$($u.Name)" -or $AdminMembers -contains $($u.Name)) { $IsAdmin = "SI" }
$CuentaActiva = if ($u.Enabled) { "SI" } else { "NO" } $UltimoCambio = if ($u.PasswordLastSet) { $u.PasswordLastSet.ToString("dd/MM/yyyy") } else { "Nunca" } $UltimaConexion = if ($u.LastLogon) { $u.LastLogon.ToString("dd/MM/yyyy") } else { "Nunca" } $DiasInactivo = if ($u.LastLogon) { ((Get-Date) - $u.LastLogon).Days } else { "N/A" } $NombreMostrar = if ($u.FullName) { $u.FullName } else { $u.Name }
[PSCustomObject]@{ "Nombre" = $NombreMostrar "Usuario de Inicio" = $u.Name "Cuenta activa" = $CuentaActiva "Unidad Organizativa" = "Equipo Local" "Fecha Caducidad" = "Pendiente definir" "Ultimo Cambio" = $UltimoCambio "Ultima Conexion" = $UltimaConexion "Dias Inactivo" = $DiasInactivo "Es Administrador" = $IsAdmin "Descripcion" = $u.Description }}
# 4. Formateamos a texto tabulado para Excel$TextoTabulado = $Resultados | ForEach-Object { "$($_.'Nombre')`t$($_.'Usuario de Inicio')`t$($_.'Cuenta activa')`t$($_.'Unidad Organizativa')`t$($_.'Fecha Caducidad')`t$($_.'Ultimo Cambio')`t$($_.'Ultima Conexion')`t$($_.'Dias Inactivo')`t$($_.'Es Administrador')`t$($_.'Descripcion')"}
$Encabezado = "Nombre`tUsuario de Inicio de Sesión`tCuenta activa`tUnidad Organizativa`tFecha Caducidad Contraseña`tÚltimo Cambio Contraseña`tÚltima Conexión`tDías Inactivo`tEs Administrador`tDescripción"$ResultadoFinal = ($Encabezado + "`r`n" + ($TextoTabulado -join "`r`n"))
# 5. Enviamos al portapapelesAdd-Type -AssemblyName PresentationCore[Windows.Clipboard]::SetText($ResultadoFinal)
Write-Host "¡Listo! Cuentas locales copiadas. Ya puedes hacer Control + V en tu Excel." -ForegroundColor GreenCómo usarlo
Section titled “Cómo usarlo”- Abrí PowerShell como Administrador
- Pegá el script y ejecutalo
- Hacé Control + V en Excel