Comandos imprescindibles Windows

Comandos imprescindibles del CMD para usuarios y diagnóstico

Aunque PowerShell es la evolución natural, el CMD sigue siendo fundamental en ciertos escenarios. Sus comandos básicos te ayudan a navegar, diagnosticar y reparar tu sistema cuando nada más funciona.

ComandoDescripción
cdCambia el directorio actual. Usa cd.. para subir en la estructura de carpetas.
dirLista los archivos y carpetas del directorio actual.
treeMuestra la estructura de directorios en forma de árbol.
copyCopia archivos de un lugar a otro.
moveMueve archivos entre ubicaciones.
delElimina archivos.
renameCambia el nombre de archivos.
systeminfoMuestra detalles del sistema y hardware.
ipconfigProporciona información de red y direcciones IP.
pingComprueba la conectividad con otros dispositivos en la red.
shutdownPermite apagar o reiniciar la máquina mediante comandos.
tasklistLista todos los procesos activos.
taskkillFinaliza procesos en ejecución por la fuerza.

Para ampliar información, usa comando /? y consulta las opciones disponibles para cada comando.

PowerShell es una herramienta de línea de comandos desarrollada por Microsoft para administrar sistemas, automatizar tareas, gestionar entornos entre otros. A diferencia de CMD, esta herramienta trabaja con objetos en lugar de con texto plano, por lo que permite realizar tareas más avanzadas que con CMD.

Comandos esenciales de PowerShell

Información del sistema

Además de identificar el hardware del equipo, permite también conocer el historial de comandos que hemos utilizado, algo que, en ocasiones, puede ser de mucha utilidad.

  • Obtener ayuda powershellGet-Help
  • Muestra información detallada del sistema Get-ComputerInfo
  • Muestra la fecha y hora Get-Date
  • Muestra el historial de comandos Get-History
  • Limpia el historial Clear-History

Navegación y archivos

A través de PowerShell podemos movernos entre carpetas y realizar operaciones básicas con archivos como crear, copiar, mover e incluso eliminar archivos.

  • Muestra la carpeta actual Get-Location
  • Cambia de carpeta Set-Location C:Users
  • Lista archivos y carpetas Get-ChildItem
  • Busca archivos y carpetas dentro de subdirectorios Get-ChildItem -Recurse
  • Crea un archivo New-Item archivo.txt
  • Crea una carpeta New-Item -ItemType Directory MiCarpeta
  • Copia archivos Copy-Item origen.txt destino.txt
  • Mueve archivos Move-Item archivo.txt C:Destino
  • Renombra archivos Rename-Item archivo.txt nuevo.txt
  • Elimina un archivo Remove-Item archivo.txt
  • Elimina una carpeta y todo su contenido Remove-Item carpeta -Recurse

Buscar y filtrar

También podemos hacer búsquedas de todo tipo aplicando filtros.

  • Busca texto dentro de un archivo Select-String «error» archivo.log
  • Filtra archivos por extensión Get-ChildItem *.txt
  • Filtra procesos según el uso de CPU Get-Process | Where-Object {$_.CPU -gt 100}
  • Ordena servicios por estado Get-Service | Sort-Object Status

Ver y modificar contenido

Con los siguientes comandos, podemos ver, modificar o añadir contenido dentro de los archivos sin tener que utilizar un editor de texto como el Bloc de notas.

  • Muestra el contenido de un archivo Get-Content archivo.txt
  • Muestra las últimas 20 líneas de un archivo Get-Content archivo.log -Tail 20
  • Reemplaza el contenido completo de un archivo Set-Content archivo.txt «Hola»
  • Añade texto al final de un archivo Add-Content archivo.txt «Nueva línea»
  • Vacía un archivo sin eliminarlo Clear-Content archivo.txt

Procesos y servicios

Estos comandos son fundamentales cuando Windows está presentando problemas con determinadas aplicaciones colgadas y con procesos activos entre otros.

  • Muestra procesos activos Get-Process
  • Cierra un proceso Stop-Process -Name chrome
  • Abre una aplicación Start-Process notepad
  • Muestra servicios del sistema Get-Service
  • Reinicia un servicio Restart-Service spooler

Conectividad y redes

Con PowerShell podemos diagnosticar problemas con la conexión de red e incluso con la conexión a internet.

  • Realiza una prueba de conectividad (ping) Test-Connection hardzone.es
  • Muestra las direcciones IP del equipo Get-NetIPAddress
  • Consulta información DNS Resolve-DnsName hardzone.es
  • Comprueba si un puerto está disponible Test-NetConnection hardzone.es -Port 8080

Get-NetIPAddress: Ver configuración IP

  • Mostrar todas las direcciones IP

Get-NetIPAddress

  • Mostrar sólo direcciones IPv4

Get-NetIPAddress -AddressFamily IPv4

  • Obtener información específica del adaptador

Get-NetIPAddress -InterfaceAlias «Ethernet»

Resolve-DnsName: Prueba de resolución DNS

Probar la resolución DNS y buscar información sobre dominios.

  • Búsqueda DNS básica

Resolver-DnsName google.com

  • Búsqueda de tipos de registro específicos

Resolver-DnsName google.com -Tipo MX

  • Utilizar un servidor DNS específico

Resolve-DnsName google.com -Servidor 8.8.8.8

Utilizar el tabulador

de PowerShell función de completado de pestañas acelera drásticamente la introducción de comandos. Escribir nombres parciales de comandos, parámetros o rutas de archivos para autocompletarlos. Pulse Tab.

Comandos de prueba seguros

Antes de ejecutar comandos potencialmente destructivos, utilice la función -Y si para ver qué ocurriría sin ejecutar realmente el comando:

powershellEliminar-elemento *.txt -QuéSi

Detener-Servicio Spooler -QuéSi

Establecer política de ejecución

Por razones de seguridad, PowerShell restringe por defecto la ejecución de scripts. Para ejecutar scripts, puede ser necesario modificar la política de ejecución:

powershell# Comprobar política actual

Get-ExecutionPolicy

# Establecer política para el usuario actual

Set-ExecutionPolicy RemoteSigned -Alcance UsuarioActual

Creación de su primer script PowerShell

powershell# Guardar como list-wifi.ps1

<#

.SYNOPSIS

Lists WIFI

.DESCRIPTION

Lista todas las redes guardadas WIFI networks.

.EXAMPLE

PS> ./list-wifi.ps1

#>

try {

& netsh wlan show profile

exit 0 # success

} catch {

«⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])»

exit 1

}

Ruta de aprendizaje avanzada de PowerShell

Una vez que domine estos comandos esenciales, considere la posibilidad de explorar estos temas avanzados:

  • Gestión de Active Directory con los cmdlets de AD
  • Administración remota de ordenadores utilizando PowerShell remoting
  • Programación automática de tareas con scripts PowerShell
  • Tratamiento de errores y registro en guiones
  • Módulos y funciones PowerShell para reutilizar el código

Gestión avanzada: módulos y cmdlets específicos (DRDA, Hyper-V, etc.)

Existen módulos especializados que amplían las capacidades, permitiendo gestionar bases de datos (DRDA), máquinas virtuales (Hyper-V), Active Directory, y otros servicios complejos. Por ejemplo, el módulo Microsoft.HostIntegration.PowerShell ofrece numerosos comandos para administrar conexiones, servicios, trazas y codificaciones en entornos heterogéneos.

Algunos comandos avanzados destacados incluyen:

  • Set-HisDrdaService y Get-HisDrdaService: Configuran y consultan el estado del servicio DRDA.
  • Set-HisDrdaSqlServerConnection y Get-HisDrdaSqlServerConnection: Gestionan conexiones SQL Server en entornos integrados.
  • Add-HisDrdaDatabaseAlias: Asigna alias a bases de datos enlazadas.
  • Add-HisCustomCodePage: Añade codificaciones personalizadas para compatibilidad con sistemas legacy.
  • Set-HisDrdaConsoleTraceListener: Configura la trazabilidad para depuración avanzada y análisis.