Scripts de PowerShell útiles sin ser administrador

Última actualización: 10 de abril de 2026
  • PowerShell permite automatizar muchas tareas incluso con cuentas sin privilegios elevados.
  • Los cmdlets básicos para procesos, archivos, red y análisis son aprovechables por usuarios estándar.
  • Existen módulos y scripts avanzados de seguridad y AD que marcan buenas prácticas aunque requieran elevación.
  • La combinación de práctica, documentación oficial y comunidad es clave para dominar PowerShell paso a paso.

scripts de PowerShell útiles sin ser administrador

Si trabajas a diario con Windows, tarde o temprano vas a acabar chocando con PowerShell y sus scripts. Y no siempre tendrás a mano una cuenta de administrador, ni ganas de ir abriendo sesiones elevadas para todo. La buena noticia es que hay muchísimas tareas que puedes automatizar y controlar con PowerShell aunque no seas admin local ni de dominio.

En las próximas líneas vas a encontrar un repaso muy amplio a scripts y comandos de PowerShell útiles sin necesidad de privilegios elevados, cómo sacarles jugo y, de paso, qué papel juegan en la seguridad del sistema y de tu red. Verás también varios ejemplos pensados para Active Directory, para administración de equipos y para el día a día de cualquier usuario avanzado que no quiere vivir pegado al ratón.

Qué es PowerShell y por qué te interesa incluso sin ser administrador

PowerShell es mucho más que “otra ventanita negra”. Es un intérprete de comandos avanzado con lenguaje de scripting propio, basado en .NET, pensado para automatizar casi cualquier tarea en Windows: desde copiar archivos en bloque hasta auditar un bosque entero de Active Directory.

A diferencia del viejo CMD, PowerShell trabaja con objetos .NET en lugar de simples cadenas de texto. Eso te permite encadenar comandos (cmdlets) con una potencia brutal: filtrar, ordenar, exportar a CSV, convertir a HTML, lo que quieras… con unas pocas líneas.

Para muchos administradores y usuarios avanzados, PowerShell es hoy la herramienta central de automatización tanto en estaciones de trabajo como en servidores. Incluso se ha vuelto multiplataforma (PowerShell Core) y de código abierto, con un ecosistema muy activo en GitHub donde encontrarás módulos y scripts para casi todo.

Aunque su fama viene de la administración con privilegios, PowerShell también brilla cuando trabajas con cuentas sin permisos de administrador. Desde revisar procesos, comprobar eventos y estado de red, hasta gestionar tus propios archivos, logs de usuario o pequeñas automatizaciones sin tocar nada del sistema.

Importante: si quieres ejecutar scripts (.ps1), muchas veces tendrás que ajustar la política de ejecución con Set-ExecutionPolicy. Esto sí puede requerir abrir PowerShell como administrador, pero una vez configurada por un admin, tú puedes seguir aprovechando scripts dentro de los límites de tus permisos de usuario.

PowerShell con y sin privilegios: qué cambia realmente

Uso de PowerShell con y sin privilegios de administrador

PowerShell puede abrirse de dos maneras básicas: sesión estándar (sin elevación) y sesión como administrador. A nivel práctico, el mismo cmdlet puede comportarse de forma distinta según los permisos de la cuenta que lo lanza.

En una sesión normal, PowerShell te permite realizar tareas de usuario: gestionar archivos en tu perfil, consultar procesos, ver servicios, leer información del sistema, analizar logs que tengas permitidos, ejecutar scripts que no toquen zonas protegidas, etc. Si intentas modificar algo que requiere privilegios, el comando fallará con un error de acceso denegado, pero no romperás nada.

En una sesión elevada, en cambio, puedes cambiar la política de ejecución, modificar o gestionar el registro de Windows, instalar software, gestionar servicios, alterar configuraciones globales o de seguridad. Es la forma de trabajar de un administrador de sistemas, pero también entraña más riesgo: un script mal ejecutado puede liarla parda en segundos.

Por ese motivo, muchas organizaciones aplican el principio de mínimo privilegio: que el día a día se haga con cuentas estándar, y solo se eleve lo justo y necesario. En este contexto, tener claro qué scripts de PowerShell son útiles sin ser administrador es oro puro.

Si eres admin y necesitas lanzar scripts sin elevación desde una sesión elevada (por ejemplo, porque ciertas herramientas no soportan privilegios altos), el problema es más complejo. PowerShell y cmdlets como Start-Process o Invoke-Expression tienden a heredar los permisos del proceso padre. En la práctica, la solución suele pasar por ejecutar el script con credenciales explícitas de un usuario estándar usando Start-Process -Credential o mecanismos similares, siempre que las políticas de la empresa lo permitan.

Comandos y scripts básicos de PowerShell muy útiles sin ser administrador

Comandos básicos de PowerShell

Aunque existan cientos de cmdlets, hay un grupo de comandos básicos de PowerShell que son especialmente útiles para tareas diarias sin necesidad de privilegios elevados. Dominar estos cmdlets te da un control bastante serio sobre tu entorno sin tocar nada delicado.

  Cómo desactivar el sonido de las notificaciones en Windows 11

1. Descubrir módulos y comandos disponibles

Antes de ponerse a escribir scripts como loco, conviene saber qué módulos y cmdlets tienes realmente cargados en tu sistema.

Algunos cmdlets clave:

  • Get-Module -All: lista todos los módulos de PowerShell importados o disponibles.
  • Get-Command: muestra todos los cmdlets, funciones, alias y aplicaciones disponibles en tu sesión.
  • Get-Help: proporciona ayuda detallada de cualquier comando, con ejemplos y sintaxis.

Con Get-Help puedes profundizar mucho. Por ejemplo:

  • Get-Help Get-Process -Full: documentación extendida.
  • Get-Help Get-Process -Examples: solo ejemplos prácticos.
  • Update-Help: descarga y actualiza la ayuda desde Microsoft (puede requerir permisos adicionales según entorno).

2. Gestión de procesos y servicios

Como usuario normal puedes consultar y, en muchos casos, detener procesos que pertenezcan a tu sesión. Es muy útil para matar aplicaciones colgadas sin recurrir al Administrador de tareas:

  • Get-Process: lista todos los procesos activos.
  • Stop-Process -Name calc*: deteniene cualquier proceso cuyo nombre empiece por “calc”.
  • Get-Service: muestra servicios instalados y su estado (aunque pararlos o arrancarlos sí suele requerir permisos elevados).

También puedes usar Get-History y Clear-History para gestionar el historial de comandos durante tu sesión, lo que viene genial para repetir acciones rápidamente o limpiar rastros de pruebas.

3. Trabajo con archivos, carpetas y permisos personales

En tu perfil y en rutas donde tengas acceso, PowerShell se convierte en un cuchillo suizo para tratar archivos y directorios:

  • Get-ChildItem (alias dir, ls): lista archivos y carpetas, con opción -Recurse para bajar por subdirectorios.
  • Copy-Item, Move-Item, Remove-Item: copiar, mover y borrar archivos y carpetas sin dramas.
  • Get-Content: ver el contenido de archivos de texto, por ejemplo logs.
  • Clear-Content: vaciar el contenido de un archivo sin borrarlo.
  • New-Item: crear archivos o directorios nuevos.

Si necesitas gestionar permisos NTFS en rutas donde tú seas propietario o tengas control o modificar atributos de archivos, el módulo NTFSSecurity te abre muchas puertas. Con él puedes, por ejemplo, obtener informes de permisos sobre una carpeta de usuario o ajustar las ACE de forma granular, siempre respetando lo que te permita tu cuenta.

4. Análisis y salida de resultados

PowerShell brilla cuando se trata de convertir datos en información útil. Aunque no seas admin, puedes hacer análisis muy potentes de tus propios datos:

  • ConvertTo-Html: transforma la salida de un comando en una tabla HTML legible (ideal para informes rápidos).
  • ConvertTo-Xml: serializa objetos a XML para integrarlos con otras herramientas.
  • Where-Object: filtra objetos según condiciones (por ejemplo, procesos con más de X memoria).
  • Select-Object: selecciona solo las propiedades que te interesan.
  • Out-File: vuelca la salida a un archivo de texto plano.

Por ejemplo, para obtener un listado HTML de los procesos con mayor consumo de memoria sin ser administrador:

$procesos = Get-Process | Sort-Object -Property WS -Descending | Select-Object -First 20
$procesos | ConvertTo-Html | Out-File "$env:USERPROFILE\procesos_memoria.html"

5. Información del sistema y de red accesible para usuario

Aunque mucha información WMI/CIM está reservada a administradores, un usuario estándar puede consultar bastantes datos del entorno local:

  • Get-ComputerInfo: datos de hardware y sistema operativo (en ocasiones parcialmente restringido por políticas).
  • Get-WinEvent: lectura de registros de eventos a los que tu cuenta tenga acceso (por ejemplo, el registro de aplicaciones).
  • Test-Connection: equivalente avanzado a ping, muy útil para comprobar conectividad con otros hosts.
  • Test-Path: verifica si una ruta o archivo existe (devuelve True/False).
  • Get-Counter: consulta contadores de rendimiento (CPU, memoria, disco) si las políticas lo permiten.

Estas herramientas te sirven para hacer una autodiagnosis bastante completa sin necesidad de pedir constantemente la ayuda del departamento de sistemas.

Scripts y módulos orientados a seguridad que puedes conocer (y a veces usar sin ser admin)

El mundo de la ciberseguridad ha abrazado PowerShell sin complejos. Hay toda una colección de scripts y módulos diseñados para auditar, reforzar y monitorizar la seguridad de Windows, muchos de ellos alojados en GitHub. No todos se pueden ejecutar con permisos estándar, pero merece la pena conocerlos porque marcan el camino de las buenas prácticas.

Scripts clave para reforzar estaciones y servidores

Algunos de los módulos y scripts más interesantes en materia de seguridad son:

  • POSH-Sysmon: facilita la creación y gestión de ficheros de configuración de Sysmon (herramienta de Sysinternals que añade eventos avanzados de seguridad). Ideal para monitorizar procesos sospechosos y movimientos extraños.
  • SecurityPolicyDsc: módulo para definir y aplicar políticas de seguridad locales mediante Desired State Configuration (DSC). Sirve para imponer configuraciones coherentes entre equipos.
  • Device Guard / Credential Guard readiness tool (DG_Readiness.ps1): script de Microsoft que comprueba si un equipo soporta Device Guard, Credential Guard y HVCI, y puede activarlos o desactivarlos. Muy útil antes de un despliegue corporativo.
  • NTFSSecurity: ya mencionado, pero clave también en seguridad de archivos, permitiendo informes y ajustes finos de permisos NTFS.
  Cómo grabar la pantalla del ordenador con audio en Windows 11: guía completa y actualizada

La mayoría de estos scripts requieren ejecución como administrador para ser plenamente efectivos, pero como usuario normal puedes, por ejemplo, revisar documentación y checklist de incidentes, probarlos en un entorno de laboratorio local o ejecutar solo las partes de lectura para entender cómo está tu propio equipo.

Seguridad en Azure y en entornos híbridos

Si en tu organización se trabaja con la nube de Microsoft, no tardarás en oír hablar de MicroBurst, un conjunto de scripts de PowerShell para Azure que cubre:

  • Descubrimiento de servicios en suscripciones de Azure.
  • Búsqueda de configuraciones débiles.
  • Post-explotación en pruebas de penetración (por ejemplo, volcar credenciales).

En general se usa en entornos de pentesting o auditoría, así que aquí sí hace falta un nivel alto de permisos. Pero entender qué es capaz de hacer un atacante con PowerShell en Azure te ayuda a valorar mucho mejor restricciones y buenas prácticas que te impongan desde seguridad.

Monitorización y detección de cambios sospechosos

Otro bloque poderoso de scripts gira alrededor de la monitorización proactiva de cambios en la red:

  • MonitorADGroupMembership: vigila en tiempo real modificaciones en la pertenencia a grupos críticos de Active Directory (como Administradores de dominio) y puede disparar alertas por correo.
  • Posh-SecMod: paquete que incluye funciones de descubrimiento de red, análisis de resultados de otras herramientas (Nmap, DNSRecon, etc.), post-explotación, manipulación de registro remoto, etc.
  • Módulos que consultan VirusTotal o servicios similares para correlacionar hashes sospechosos con inteligencia de amenazas.

Como usuario sin privilegios no vas a poder desplegar estas soluciones a lo bruto, pero sí podrías, por ejemplo, utilizar cmdlets como Get-WinEvent y simples filtros para montar tus propias comprobaciones periódicas sobre eventos que afecten a tu perfil o a aplicaciones que utilizas, y así contribuir a mitigar el ransomware.

Comandos de PowerShell para administrar AD DS (y qué parte aprovechas sin ser admin)

En entornos corporativos con Active Directory, PowerShell es la vía rápida para controlar usuarios, grupos, equipos y OU. Aquí el acceso a los cmdlets de Active Directory sí suele estar muy restringido a administradores o cuentas delegadas, pero conviene conocerlos porque marcan el estándar de gestión moderna y los riesgos de identidades digitales.

Cmdlets de Active Directory más usados

El módulo de Active Directory se importa normalmente con:

Import-Module ActiveDirectory

A partir de ahí, tienes cmdlets como:

  • Get-ADUser: consultar usuarios.
  • Search-ADAccount: localizar cuentas expiradas, bloqueadas, inactivas, etc.
  • Get-ADComputer: obtener información de equipos unidos al dominio.
  • Set-ADUser, Set-ADComputer: modificar propiedades (normalmente solo para administradores).

Si se te han delegado permisos sobre una OU concreta, con tu cuenta estándar quizá sí puedas ejecutar consultas de solo lectura como:

  • Listar usuarios de una OU:
    Get-ADUser -Filter * -SearchBase 'ou=Zaragoza,ou=Delegaciones,dc=empresa,dc=local'
  • Exportar la info a CSV para revisarla con Excel:
    ... | Select-Object Name, UserPrincipalName, Enabled | Export-Csv C:\Temp\UsuariosOU.csv -NoTypeInformation

Otros ejemplos de consultas muy habituales (normalmente reservadas a administradores) son:

  • Cuentas expiradas: Search-ADAccount -AccountExpired
  • Cuentas deshabilitadas: Get-ADUser -Filter {(Enabled -eq $False)}
  • Usuarios bloqueados: Search-ADAccount -LockedOut
  • Usuarios inactivos: Search-ADAccount -AccountInactive -TimeSpan 90:00:00:00
  • Contraseñas que nunca caducan: filtrando PasswordNeverExpires desde Get-ADUser.

Incluso hay soluciones avanzadas para detectar contraseñas débiles en AD, como el módulo DSInternals, que permite comparar hashes de contraseñas con diccionarios. Eso sí, es terreno totalmente reservado para admins por razones obvias de seguridad.

Control de equipos del dominio

En la parte de equipos, los cmdlets más habituales permiten:

  • Listar equipos inactivos en X días (usando LastLogonTimeStamp).
  • Listar equipos deshabilitados (filtro Enabled -eq $False en Get-ADComputer).
  • Extraer inventarios de sistemas operativos, nombres DNS, direcciones IP, etc.

Como usuario de dominio sin privilegios elevados, tu papel suele limitarse a ser objeto de esas auditorías, no tanto a ejecutarlas. Pero entender qué miran esos scripts (inactividad, bloqueos, expiraciones, pertenencia a grupos, equipos obsoletos) te ayuda a moverte con más cabeza y evitar sorpresas como cuentas deshabilitadas por “falta de uso”.

Scripts de PowerShell para administración de Windows y Office 365

Más allá del propio sistema, hay una buena colección de scripts que atacan problemas muy concretos en Windows, Office 365 y servicios relacionados.

Gestión de servicios de correo y reenvíos en Office 365

Una técnica típica de los atacantes cuando consiguen credenciales de Office 365 es configurar reglas de reenvío de correo silenciosas para espiar comunicaciones sensibles; esto es una de las vulnerabilidades de Microsoft Office que conviene vigilar. Desde PowerShell se pueden revisar y bloquear estas reglas a nivel de dominio con comandos como:

  • Set-RemoteDomain <dominio> -AutoForwardEnabled $false: evita reenvíos automáticos fuera del dominio.
  Cómo cerrar o finalizar cualquier programa bloqueado en Windows 11: métodos, trucos y advertencias

Esto entra ya en terreno de administración de Exchange Online, pero tú como usuario puedes, al menos, revisar tus propias reglas de buzón y ser consciente de que ese vector de ataque existe.

Instalación y desinstalación de software desde consola

En Windows 10 y 11, el comando Winget permite instalar y actualizar software desde consola, y se integra perfectamente en PowerShell. Ejemplos típicos (cuando el administrador lo permite) son:

  • Chrome: winget install --id=Google.Chrome
  • Firefox: winget install --id=Mozilla.Firefox
  • Opera GX: winget install --id=Opera.OperaGX
  • Brave: winget install --id=BraveSoftware.BraveBrowser

Para desinstalar aplicaciones UWP, PowerShell ofrece cmdlets como:

  • Get-AppxPackage *nombreaplicacion* | Remove-AppxPackage

Eso sí, muchas empresas restringen estas acciones, así que dependiendo de tu política de grupo, puedes encontrarte con que necesitas elevación o esas órdenes simplemente no están permitidas.

Scripts de endurecimiento de estaciones independientes

Si gestionas tu propio PC (por ejemplo, en casa) y quieres endurecer la configuración de servicios de Windows sin ir uno por uno, existe un script muy popular basado en las recomendaciones de Black Viper (BlackViperScript). Este script ajusta el estado de decenas de servicios para optimizar rendimiento y seguridad según perfiles predefinidos.

Es una herramienta poderosa, pero hay que usarla con prudencia y, preferiblemente, probar primero en un entorno de pruebas o hacer una copia de seguridad de la configuración de servicios antes de lanzarse a modificar nada.

Cómo mejorar tu dominio de PowerShell sin quemarte

PowerShell es un mundo, y la clave para no agobiarte es aprender por capas. Empieza dominando los cmdlets básicos de consulta, filtros y gestión de archivos. A partir de ahí, ve subiendo hacia módulos más específicos (Active Directory, Azure, seguridad) cuando de verdad los necesites.

Algunas fuentes especialmente útiles para seguir creciendo son:

  • Documentación oficial de Microsoft: explica a fondo cmdlets, módulos y escenarios reales, tanto de Windows PowerShell como de PowerShell 7.
  • Libros de referencia como “Windows PowerShell in a Month of Lunches” (Don Jones) o “PowerShell Cookbook” (Lee Holmes), que van de lo básico a lo avanzado con ejemplos muy prácticos.
  • Cursos online en YouTube, LinkedIn Learning y similares. Un clásico es “PowerShell 5 esencial”, pero cualquier curso actualizado a PowerShell 7 te vendrá genial.
  • La propia comunidad: foros, GitHub, blogs técnicos y canales especializados que comparten scripts, trucos y experiencias reales.

Y sobre todo, practica. Empezar con pequeñas tareas cotidianas (renombrar un lote de archivos, generar informes en CSV, revisar procesos o conexiones) es la mejor forma de interiorizar la lógica de PowerShell sin meterte en líos con permisos ni tocar configuraciones delicadas.

Dominar PowerShell no va de memorizar 200 cmdlets, sino de entender cómo pensar en objetos, tuberías y filtros, y de saber qué puedes y qué no puedes hacer con tu nivel de permisos actual. Aprovechando bien los scripts útiles que no requieren ser administrador, puedes ahorrar muchísimo tiempo, ganar visibilidad sobre tu entorno y prepararte para, cuando toque, jugar en la liga de los administradores con todas las garantías.

programar tareas avanzadas windows
Related article:
Cómo programar tareas avanzadas en Windows paso a paso