PowerShell ha revolucionado el modo en que los usuarios de Windows interactúan con sus sistemas operativos, transformando complejas tareas administrativas en procesos sencillos y automatizados.12. Tanto si es administrador de sistemas, profesional de TI o un usuario habitual de Windows que desea aumentar su productividad, dominar los comandos esenciales de PowerShell puede ahorrarle innumerables horas y desbloquear potentes funciones de automatización.34.
Esta completa guía cubre los comandos PowerShell más importantes que todo usuario de Windows debe dominar, desde la navegación básica hasta la gestión avanzada del sistema. Al final de este tutorial, tendrá la confianza necesaria para aprovechar las potentes funciones de PowerShell en las tareas informáticas diarias.
Índice
- ¿Qué es PowerShell y por qué debería importarle?
- Primeros pasos: Abrir PowerShell
- Comandos esenciales de descubrimiento: Su brújula PowerShell
- Comandos de gestión de archivos y carpetas
- Información del sistema y gestión de procesos
- Comandos de solución de problemas de red
- Comandos de manipulación de contenidos y datos
- Trabajar con PowerShell Pipelines
- Gestión de fecha y hora
- Mejores prácticas esenciales de PowerShell
- Creación de su primer script PowerShell
- Ruta de aprendizaje avanzada de PowerShell
- Resolución de problemas comunes de PowerShell
- Conclusión: Potencie su experiencia Windows
¿Qué es PowerShell y por qué debería importarle?
PowerShell es un potente entorno de scripts y shell de línea de comandos. que viene preinstalado en todos los sistemas operativos Windows modernos2. A diferencia del Símbolo del sistema tradicional, PowerShell utiliza un estructura sintáctica verbo-sustantivo que hace que los comandos sean intuitivos y legibles para el ser humano1. Por ejemplo, Obtener proceso
recupera los procesos en ejecución, mientras que Stop-Service
detiene los servicios del sistema.
Principales ventajas de PowerShell frente al símbolo del sistema
PowerShell ofrece importantes ventajas sobre la interfaz de línea de comandos tradicional1:
- Salida basada en objetos: En lugar de texto plano, PowerShell trabaja con objetos estructurados que contienen propiedades y métodos
- Funciones avanzadas de scripting: Cree scripts de automatización complejos con bucles, condiciones y funciones.
- Ampliable mediante módulos: Añada funcionalidad mediante bibliotecas .NET y cmdlets personalizados
- Apoyo a los oleoductos: Encadene comandos para procesar datos con eficacia
- Compatibilidad multiplataforma: Ejecute PowerShell en Windows, Linux y macOS
Primeros pasos: Abrir PowerShell
Antes de sumergirse en los comandos, debe saber cómo acceder a PowerShell25. En Windows 11, el método más sencillo es:
- Escriba "PowerShell" en la barra de búsqueda de Windows
- Haga clic con el botón derecho del ratón en en "Windows PowerShell"
- Seleccione "Ejecutar como administrador" para privilegios elevados
Para la mayoría de las tareas administrativas, ejecutar PowerShell como administrador le garantiza que dispone de los permisos necesarios para ejecutar comandos a nivel de sistema.
Comandos esenciales de descubrimiento: Su brújula PowerShell
1. Obtener ayuda: Su manual incorporado
En Obtenga ayuda
es posiblemente el comando PowerShell más importante alguna vez aprenderás467. Proporciona documentación completa para cualquier cmdlet, función o concepto dentro de PowerShell.
Sintaxis básica:
powershellGet-Help
Ejemplos prácticos:
powershell# Obtener ayuda básica para un comando
Get-Help Get-Proceso
# Obtener ayuda detallada con ejemplos
Get-Help Get-Process -Full
# Ver sólo ejemplos
Get-Help Get-Process -Ejemplos
# Abrir la documentación de ayuda en línea
Get-Help Get-Process -Online
Consejo profesional: Utilice Actualizar-Ayuda
periódicamente para asegurarse de que dispone de la documentación de ayuda más reciente6.
2. Get-Command: Descubra los comandos disponibles
Cuando no sepas qué comando utilizar, Get-Command
te ayuda encuentre el cmdlet adecuado para su tarea486.
Patrones útiles:
powershell# Listar todos los comandos disponibles
Obtener comando
# Buscar comandos que empiecen por "Get"
Get-Comando Get-*
# Buscar comandos que contengan "Process".
Comando Get *Process*
# Buscar comandos para acciones específicas
Get-Comando Start-*
Obtener comando Detener-*
Este método es especialmente útil cuando sabes qué acción quieres realizar pero no estás seguro del nombre exacto del comando.
3. Get-Member: Comprender las propiedades de los objetos
PowerShell trabaja con objetos, y Obtener-miembro
te muestra qué propiedades y métodos están disponibles para cualquier objeto6.
powershell# Ver propiedades de objetos de proceso
Get-Process | Get-Member
# Ver propiedades de objetos de servicio
Get-Servicio | Get-Miembro
Comandos de gestión de archivos y carpetas
4. Get-ChildItem: Lista el contenido del directorio
Get-ChildItem
es el equivalente de PowerShell a la función dir
pero con muchas más funciones1910.
Uso común:
powershell# Listar el contenido del directorio actual
Get-ChildItem
# Lista de archivos ocultos
Get-ChildItem -Force
# Listado recursivo (incluyendo subdirectorios)
Get-ChildItem -Recurse
# Filtrar por tipo de archivo
Get-ChildItem *.txt
# Buscar archivos en subdirectorios
Get-ChildItem -Path C:\Users -Include *.pdf -Recurse
Alias: También puede utilizar ls
, dir
o gci
como atajos10.
5. Set-Location: Navegar por directorios
Navega por tu sistema de archivos de forma eficiente con Fijar-Localización
10.
powershell# Cambiar a un directorio específico
Establecer-Localización C:³³Usuarios³Documentos
# Ir al directorio principal
Set-Location ..
# Volver a la ubicación anterior
Set-Location -
# Navegar usando alias
cd C:³³Windows
sl C:\Temp
6. Copiar: Copiar archivos y carpetas
En Copiar artículo
proporciona potentes funciones de copia de archivos910.
powershell# Copiar un solo archivo
Copiar-elemento "origen.txt" "destino.txt"
# Copiar con protección contra sobrescritura
Copiar-elemento "origen.txt" "copia.txt" -Forzar
# Copiar directorios completos
Copy-Item "C:fuente" "C:copia de seguridad" -Recurse
# Copiar múltiples archivos usando comodines
Copiar-elemento "*.log" "C:\Logs\"
7. Mover: Mover y renombrar archivos
Utilice Mover elemento
para mover y renombrar archivos y carpetas1112.
powershell# Mover un archivo a otra ubicación
Mover-elemento "archivoantiguo.txt" "C:³³nuevaLocalización³"
# Cambiar el nombre de un archivo
Mover-elemento "nombreantiguo.txt" "nombrenuevo.txt"
# Mover todos los archivos de un tipo específico
Get-ChildItem *.txt | Move-Item -Destination "C:\TextFiles\"
8. Eliminar elemento: Eliminar archivos y carpetas
Eliminar archivos y directorios de forma segura con Eliminar elemento
10.
powershell# Eliminar un solo archivo
Eliminar-elemento "no deseado.txt"
# Eliminar con confirmación
Eliminar-elemento "importante.txt" -Confirmar
# Eliminar directorios recursivamente
Remove-Item "C:³³TempFolder" -Recurse -Force
# Eliminar archivos que coincidan con el patrón
Eliminar-elemento "*.tmp"
Advertencia: Tenga mucho cuidado con Eliminar elemento
especialmente cuando se utiliza -Recurse
y -Fuerza
ya que los archivos borrados pueden no ser recuperables.
9. Nuevo elemento: Crear archivos y directorios
Crea nuevos archivos y carpetas rápidamente con Nuevo artículo
1013.
powershell# Crear un nuevo directorio
New-Item -Name "NewFolder" -ItemType Directorio
# Crear un nuevo archivo
Nuevo-Item -Nombre "nuevoarchivo.txt" -TipoArchivo
# Crear archivo con contenido
New-Item "readme.txt" -ItemType File -Value "Este es el contenido inicial"
# Crear directorios anidados
New-Item "C:\Projects\NNNewProject\Source" -ItemType Directory -Force
Información del sistema y gestión de procesos
10. Get-Process: Monitorizar Procesos en Ejecución
Obtener proceso
proporciona información detallada sobre procesos en ejecución en su sistema34.
powershell# Listar todos los procesos en ejecución
Obtener proceso
# Obtener un proceso específico por nombre
Get-Process bloc de notas
# Obtener procesos utilizando comodín
Get-Process nota*
# Ordenar procesos por uso de CPU
Get-Process | Ordenar-Objeto CPU -Descendente
# Obtener los 10 procesos que más memoria consumen
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
11. Detener Proceso: Terminar procesos
Detener procesos innecesarios o que no responden con Detener el proceso
4.
powershell# Detener proceso por nombre
Detener-Proceso -Nombre "bloc de notas"
# Detener proceso por ID
Detener-Proceso -Id 1234
# Detener con confirmación
Detener-Proceso -Nombre "chrome" -Confirmar
# Forzar parada de procesos persistentes
Stop-Process -Nombre "aplicación" -Forzar
12. Get-Service: Administrar servicios de Windows
Supervisar y gestionar Servicios de Windows que se ejecutan en segundo plano41415.
powershell# Listar todos los servicios
Obtener-servicio
# Obtener servicios por estado
Get-Service | Where-Object Estado -eq "En ejecución"
# Obtener servicio específico
Get-Service -Name "Spooler"
# Obtener servicios que empiecen por determinadas letras
Get-Service -Name "Win*"
13. Iniciar-Servicio y Parar-Servicio: Servicios de control
Iniciar y detener los servicios de Windows según sea necesario1415.
powershell# Iniciar un servicio
Iniciar-Servicio -Nombre "Spooler"
# Detener un servicio
Stop-Service -Nombre "Spooler"
# Reiniciar un servicio
Reiniciar-servicio -Nombre "Spooler"
# Iniciar varios servicios
Get-Service -Name "BITS", "Spooler" | Start-Service
Comandos de solución de problemas de red
14. Test-NetConnection: Prueba de conectividad de red
Test-NetConnection
es la versión mejorada de PowerShell de ping con capacidades adicionales1617.
powershell# Prueba de conectividad básica
Test-NetConnection google.com
# Probar puerto específico
Test-NetConnection google.com -Puerto 80
# Trazar ruta a destino
Test-NetConnection google.com -TraceRoute
# Probar múltiples conexiones
"google.com", "microsoft.com" | ForEach-Object { Test-NetConnection $_ }
15. Get-NetIPAddress: Ver configuración IP
Compruebe su configuración IP de la red con Get-NetIPAddress
1617.
powershell# 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"
16. Resolve-DnsName: Prueba de resolución DNS
Probar la resolución DNS y buscar información sobre dominios16.
powershell# 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
Comandos de manipulación de contenidos y datos
17. Get-Content: Leer el contenido de un archivo
Leer y visualizar el contenido de los archivos directamente en PowerShell1819.
powershell# Mostrar todo el contenido del archivo
Get-Content "archivo.txt"
# Leer un número específico de líneas
Get-Content "archivogrande.txt" -Head 10
# Supervisar los cambios en el archivo (como tail -f)
Get-Content "live.log" -Wait
# Leer las últimas líneas
Get-Content "recent.log" -Tail 20
18. Archivo de salida: Exportar salida a archivos
Guardar la salida del comando a archivos para su posterior análisis619.
powershell# Guardar lista de procesos en archivo
Get-Process | Archivo de salida "processes.txt"
# Añadir al archivo existente
Get-Date | Out-File "log.txt" -Append
# Guardar con codificación específica
Get-Service | Out-File "services.txt" -Encoding UTF8
19. Seleccionar objeto: Filtrar y dar formato a la salida
Controle qué información se muestra a partir de los resultados del comando2021.
powershell# Mostrar sólo propiedades específicas
Get-Process | Seleccionar-Objeto Nombre, CPU, WorkingSet
# Obtener los primeros resultados
Get-ChildItem | Seleccionar-Objeto -Primeros 5
# Seleccionar valores únicos
Get-Process | Select-Object NombreProceso -Único
Trabajar con PowerShell Pipelines
20. Where-Object: Filtrar resultados
Filtrar resultados de comandos en función de criterios específicos2021.
powershell# Filtrar servicios en ejecución
Get-Service | Where-Object Status -eq "Running"
# Filtrar archivos grandes
Get-ChildItem | Where-Object Length -gt 1MB
# Filtrado complejo con múltiples condiciones
Get-Process | Where-Object {$_.CPU -gt 100 -y $_.WorkingSet -gt 50MB}
21. Ordenar-Objeto: Ordenar resultados
Organizar la producción en orden ascendente o descendente21.
powershell# Ordenar procesos por nombre
Get-Process | Ordenar-Objeto Nombre
# Ordenar por múltiples propiedades
Get-ChildItem | Ordenar objeto LastWriteTime, Nombre
# Ordenar en orden descendente
Get-Process | Sort-Object CPU -Descending
22. ParaCadaObjeto: Procesar cada elemento
Realizar acciones en cada objeto en una tubería1921.
powershell# Procesa cada fichero
Get-ChildItem *.txt | ForEach-Object {
Write-Host "Procesando: $($_.Nombre)"
}
# Modificar cada objeto
Get-Service | ForEach-Object {
"$($_.Nombre): $($_.Status)"
}
Gestión de fecha y hora
23. Get-Date: Trabajar con fechas y horas
Recuperar y formatear información sobre la fecha y hora actuales19.
powershell# Obtener fecha y hora actuales
Obtener-fecha
# Formatear fecha de forma específica
Get-Date -Format "aaaa-MM-dd HH:mm:ss"
# Obtener componentes de fecha
(Get-Date).DíaDeLaSemana
(Get-Date).Año
# Calcular fechas futuras
(Get-Date).AddDays(30)
Mejores prácticas esenciales de PowerShell
Utilizar el tabulador
de PowerShell función de completado de pestañas acelera drásticamente la introducción de comandos17. Pulse Tab después de escribir nombres parciales de comandos, parámetros o rutas de archivos para autocompletarlos.
Aprovechar los alias
PowerShell incluye muchas alias incorporados para comandos comunes5:
ls
odir
paraGet-ChildItem
cd
paraFijar-Localización
cat
otipo
paraObtener contenido
rm
odel
paraEliminar elemento
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 comando12:
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 scripts22. 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
Una vez que te sientas cómodo con los comandos individuales, puedes combinarlos en guiones para la automatización2223. He aquí un ejemplo sencillo:
powershell# Guardar como system-info.ps1
Write-Host "Informe de información del sistema" -ForegroundColor Verde
Write-Host "=========================" -ForegroundColor Verde
Write-Host "`nFecha y Hora Actual:" -ForegroundColor Amarillo
Obtener-Fecha
Write-Host "`nLos 5 primeros procesos por CPU:" -ForegroundColor Amarillo
Get-Process | Ordenar-Objeto CPU -Descendente | Seleccionar-Objeto -Primeros 5
Write-Host "`nCuento de servicios en ejecución:" -ForegroundColor Yellow
(Get-Service | Where-Object Status -eq "Running").Count
Write-Host "`nUso del disco:" -ForegroundColor Yellow
Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, @{Name="Tamaño(GB)";Expression={[math]::Redondeo($_.Tamaño/1GB,2)}}, @{Name="EspacioLibre(GB)";Expression={[math]::Redondeo($_.EspacioLibre/1GB,2)}}
Ruta de aprendizaje avanzada de PowerShell
Una vez que domine estos comandos esenciales, considere la posibilidad de explorar estos temas avanzados24:
- 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
Resolución de problemas comunes de PowerShell
Errores de la política de ejecución
Si encuentra errores del tipo "la ejecución de scripts está desactivada", compruebe y modifique su política de ejecución22:
powershellGet-ExecutionPolicy -Lista
Set-ExecutionPolicy RemoteSigned -Alcance UsuarioActual
Errores de permiso denegado
Muchas tareas administrativas requieren privilegios elevados. Ejecute siempre PowerShell como administrador cuando trabaje con:
- Servicios del sistema
- Modificaciones del registro
- Configuraciones de red
- Gestión de cuentas de usuario
Trayectoria y ubicación
Cuando los comandos no puedan encontrar archivos o directorios, verifique su ubicación actual y utilice rutas completas:
powershellObtener-Localización
Establecer-Localización C:\SuRutaDeseada
Conclusión: Potencie su experiencia Windows
Dominar estos comandos esenciales de PowerShell le transforma de un usuario pasivo de Windows en un administrador activo del sistema capaz de automatizar tareas complejas y resolver problemas de forma eficaz.13. En estructura de comandos verbo-sustantivo hace que el aprendizaje de PowerShell sea intuitivo, mientras que sus potentes funciones de canalización permiten un sofisticado procesamiento de datos y gestión de sistemas.24.
Empiece practicando estas órdenes en un entorno seguro, aumentando gradualmente su confianza y explorando escenarios más avanzados. Recuerda que Obtenga ayuda
está siempre disponible para proporcionar información detallada sobre cualquier comando, y el tabulador hace que la introducción de comandos sea más rápida y precisa.725.
Tanto si gestiona archivos como si supervisa el rendimiento del sistema, soluciona problemas de red o automatiza tareas repetitivas, PowerShell le proporciona las herramientas que necesita para trabajar de forma más eficiente y eficaz con sistemas Windows.17. La inversión en el aprendizaje de PowerShell paga dividendos en el aumento de la productividad y la mejora de las capacidades de administración de sistemas que le servirán a lo largo de su carrera informática.