Recuperar la clave Wi‑Fi con PowerShell en Windows 10/11

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Este artículo explica varios métodos para ver la contraseña (clave) de redes Wi‑Fi guardadas en Windows usando PowerShell. Incluye un comando rápido para un SSID concreto, un procedimiento para listar todos los perfiles y un script avanzado que exporta y lee perfiles de manera robusta (independiente del idioma del sistema).

Responsabilidad y privacidad: Solo debes consultar claves de redes que administras o para las que tienes permiso. Los comandos muestran contraseñas en texto claro.

Requisitos

  • Windows 10 u 11.
  • PowerShell 5.1 o PowerShell 7.x.
  • Consola con permisos estándar. Para exportar perfiles a disco puede requerirse ejecutar como administrador.

Método 1 — Comando rápido para un SSID concreto

Si conoces el nombre de la red (SSID), puedes imprimir su clave directamente:

# Sustituye "MiSSID" por el nombre exacto del perfil Wi‑Fi

netsh wlan show profile name="MiSSID" key=clear

Busca en la salida la sección Key Content / Contenido de la clave. Si no aparece, el perfil puede no tener clave o tu usuario no tiene permisos suficientes.

Sugerencia: si no recuerdas el nombre exacto del SSID, lista todos los perfiles con netsh wlan show profiles.

Método 2 — Listar y consultar perfiles guardados

  1. Listar perfiles Wi‑Fi almacenados:

    netshwlanshowprofiles
  2. Consultar la clave de un perfil específico:

    netshwlanshowprofilename="NOMBRE_DEL_PERFIL"key=clear

Nota: los literales en la salida de netsh cambian según el idioma de Windows. Este método funciona en cualquier idioma, pero los títulos de los campos (p. ej., All User Profile / Perfiles de todos los usuarios) varían.

Método 3 — Script PowerShell para obtener todas las claves

El siguiente script exporta todos los perfiles Wi‑Fi a XML con la clave en claro, y luego analiza esos XML para mostrar una tabla con SSID, autenticación, cifrado y clave. Este enfoque es más robusto porque no depende del idioma de la salida de netsh.

# Crear carpeta temporal para exportación
$timestamp = Get-Date -Format 'yyyyMMdd-HHmmss'
$exportDir = Join-Path $env:TEMP "wlan-profiles-$timestamp"
$null = New-Item -ItemType Directory -Path $exportDir -Force


# Exportar todos los perfiles con clave en claro
# Puede requerir consola elevada (Administrador) en algunos entornos
$exportCmd = "netsh wlan export profile key=clear folder=\"$exportDir\""
$null = Invoke-Expression $exportCmd


# Analizar cada XML exportado
$results = Get-ChildItem -Path $exportDir -Filter '*.xml' | ForEach-Object {
try {
[xml]$xml = Get-Content -LiteralPath $_.FullName -ErrorAction Stop
[pscustomobject]@{
Perfil = $xml.WLANProfile.name
Autenticacion = $xml.WLANProfile.MSM.security.authEncryption.authentication
Cifrado = $xml.WLANProfile.MSM.security.authEncryption.encryption
Clave = $xml.WLANProfile.MSM.security.sharedKey.keyMaterial
ArchivoXML = $_.FullName
}
}
catch {
Write-Warning "No se pudo leer $($_.FullName): $($_.Exception.Message)"
}
}


# Mostrar resultados en tabla ordenada por nombre de perfil
$results | Sort-Object Perfil | Format-Table -AutoSize


# Opcional: exportar a CSV sin exponer la clave por defecto
#$results | Select-Object Perfil,Autenticacion,Cifrado #| Export-Csv "$exportDir\\wifi_perfiles_sin_clave.csv" -NoTypeInformation -Encoding UTF8


# Si necesitas exportar la clave (bajo tu responsabilidad):
#$results | Export-Csv "$exportDir\\wifi_perfiles_con_clave.csv" -NoTypeInformation -Encoding UTF8


Write-Host "\nPerfiles exportados en: $exportDir" -ForegroundColor Cyan

Ventajas de este método

  • Independiente del idioma de Windows (los datos vienen del XML de perfil).
  • Te da una visión completa de todos los perfiles y sus parámetros de seguridad.
  • Puedes conservar evidencias (CSV) o limpiar los archivos cuando termines.

Limpieza (opcional):

# Eliminar los XML exportados si ya no los necesitas

Remove-Item -LiteralPath$exportDir -Recurse -Force

Método 4 — Obtener la clave del SSID actualmente conectado

Este fragmento detecta el SSID activo y muestra su clave:

# Detectar SSID activo mediante netsh (puede variar por idioma)
$ifaceText = netsh wlan show interfaces
$ssid = ($ifaceText | Select-String -Pattern 'SSID\s*:\s*(.+)$' -CaseSensitive:$false).Matches.Groups[1].Value.Trim()


if ([string]::IsNullOrWhiteSpace($ssid)) {
Write-Error 'No se pudo determinar el SSID activo. ¿Estás conectado a una red Wi‑Fi?'
} else {
Write-Host "SSID actual: $ssid" -ForegroundColor Cyan
netsh wlan show profile name="$ssid" key=clear
}

Si el sistema está en español y el patrón anterior no encuentra el SSID (por el cambio de etiquetas), utiliza el Método 3 para evitar depender del idioma.

Errores comunes y soluciones

  • La clave no aparece: Asegúrate de añadir key=clear. Algunos entornos corporativos restringen la lectura de claves.
  • Acceso denegado / necesitas privilegios elevados: Ejecuta PowerShell como Administrador.
  • El perfil no existe: Comprueba el nombre exacto con netsh wlan show profiles.
  • Salida ilegible por idioma/localización: Preferir el Método 3 (exportar + XML).

Buenas prácticas

  • No dejes archivos con claves en claro en discos compartidos. Borra $exportDir al terminar.
  • Si debes registrar evidencia, guarda solo lo necesario y protege el CSV con controles de acceso.
  • Evita pegar claves en canales no cifrados o tickets sin clasificación adecuada.

Apéndice — One‑liner para todas las claves

Úsalo con cuidado. Exporta y muestra todas las claves en la misma consola.

$dir=Join-Path$env:TEMP"wlan-$(Get-Date -f yyyyMMddHHmmss)"; $null=New-Item -ItemTypeDirectory -Path$dir -Force; netshwlanexportprofilekey=clearfolder="$dir" | Out-Null; Get-ChildItem$dir -Filter *.xml | % { $x=[xml](Get-Content$_.FullName); [pscustomobject]@{Perfil=$x.WLANProfile.name;Clave=$x.WLANProfile.MSM.security.sharedKey.keyMaterial} } | ft -AutoSize

Conclusión

Tanto el comando directo (netsh wlan show profile name=... key=clear) como el enfoque de exportar y analizar perfiles con PowerShell resuelven la recuperación de claves Wi‑Fi guardadas. Para entornos heterogéneos o scripts reutilizables, el método basado en XML ofrece mayor estabilidad y control.

Compartir:

Binario 0
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.