Cmd-let y otras cosas

Vamos a hacer la explicación definitiva sobre los cmdlets de PowerShell y toda la “nomenclatura mental” que necesitas para entender cualquier cmdlet, incluso uno que nunca hayas visto.

Esto es clave porque PowerShell no es un “lenguaje de comandos”, sino un lenguaje de objetos, y cuando entiendes su estructura, puedes leer cualquier comando como si fuera castellano.

Voy a explicártelo de forma clara, ordenada y con ejemplos prácticos.

🟦 1. La regla de oro: todos los cmdlets siguen el patrón Verbo‑Sustantivo

PowerShell está diseñado para ser predecible.

Todos los cmdlets siguen esta forma:

Código

Verbo-Sustantivo

Ejemplos:

  • Get-Service → “Obtener servicios”
  • Set-Service → “Configurar servicios”
  • Start-Service → “Iniciar servicios”
  • Stop-Process → “Detener procesos”
  • Get-Item → “Obtener un elemento”
  • Set-Item → “Modificar un elemento”
  • Remove-Item → “Eliminar un elemento”

Esto significa que si conoces los verbos, puedes adivinar cualquier cmdlet.

🟦 2. Los verbos más importantes (la clave para entender todo)

Aquí tienes los verbos que más se usan, con su significado real:

VerboSignificado
GetObtener, listar, leer
SetConfigurar, modificar
NewCrear
RemoveEliminar
StartIniciar
StopDetener
RestartReiniciar
EnableActivar
DisableDesactivar
InvokeEjecutar
TestComprobar si algo existe o funciona
AddAñadir
ClearVaciar
CopyCopiar
MoveMover
WriteEscribir salida

Si ves un cmdlet nuevo, solo tienes que leerlo así:

Código

Verbo + Sustantivo = Acción + Objeto

Ejemplo:

Invoke-Command = “Ejecutar un comando”.

🟦 3. Los sustantivos más comunes

Los sustantivos indican qué tipo de objeto estás manipulando:

SustantivoQué representa
ServiceServicios
ProcessProcesos
ItemArchivos, carpetas, claves del registro
ContentContenido de archivos
EventLogLogs del sistema
ScheduledTaskTareas programadas
NetFirewallRuleReglas del firewall
LocalUserUsuarios locales
LocalGroupGrupos locales
CimInstanceObjetos WMI
PSSessionSesiones remotas

Ejemplo:

Get-LocalUser → “Obtener usuarios locales”.

🟦 4. El pipeline | (la joya de PowerShell)

En Linux, el pipeline pasa texto. En PowerShell, pasa objetos completos.

Ejemplo:

powershell

Get-Service | Where-Object { $_.Status -eq "Running" }

Traducción:

  1. Get-Service → obtén todos los servicios.
  2. | → pásalos uno por uno.
  3. Where-Object → filtra según una condición.
  4. $_ → cada servicio individual.
  5. $_.Status → propiedad “Status” del servicio.

🟦 5. Where-Object explicado de forma sencilla

Where-Object sirve para filtrar.

Formato:

powershell

Where-Object { condición }

Ejemplos:

powershell

Where-Object { $_.Name -eq "sshd" }
Where-Object { $_.Status -eq "Running" }
Where-Object { $_.DisplayName -match "Update" }

🟦 6. ¿Qué es $_?

$_ significa:

“El objeto actual que está pasando por el pipeline”.

Si haces:

powershell

Get-Process | Where-Object { $_.CPU -gt 10 }

$_ es cada proceso.

🟦 7. Operadores importantes

OperadorSignificado
-eqIgual
-neNo igual
-gtMayor que
-ltMenor que
-matchCoincide con expresión regular
-likeCoincide con comodines (*texto*)
-containsContiene un valor
-inEstá dentro de una lista

Ejemplos:

powershell

$_.Name -eq "sshd"
$_.Status -ne "Running"
$_.DisplayName -match "Diag|Telemetry"
$_.Name -like "*update*"

🟦 8. Select-Object (para elegir propiedades)

Ejemplo:

powershell

Get-Service | Select-Object Name, Status

🟦 9. Sort-Object (ordenar)

powershell

Get-Process | Sort-Object CPU -Descending

🟦 10. Format-Table y Format-List

powershell

Get-Service | Format-Table
Get-Service | Format-List *

🟦 11. Cómo leer cualquier cmdlet aunque no lo conozcas

Ejemplo:

powershell

Get-NetFirewallRule | Where-Object { $_.Enabled -eq "True" }

Traducción:

  • Get → obtener
  • NetFirewallRule → reglas del firewall
  • Where-Object → filtrar
  • $_.Enabled -eq «True» → reglas activas

Otro ejemplo:

powershell

New-LocalUser -Name "David"
  • New → crear
  • LocalUser → usuario local
  • -Name → parámetro

🟦 12. Ejercicio práctico para que lo domines

📌 Ejercicio 1 — Lista solo los servicios que están detenidos

powershell

Get-Service | Where-Object { $_.Status -eq "Stopped" }

📌 Ejercicio 2 — Lista los procesos que consumen más de 50 MB

powershell

Get-Process | Where-Object { $_.WorkingSet -gt 50MB }

📌 Ejercicio 3 — Lista las tareas programadas relacionadas con Windows Update

powershell

Get-ScheduledTask | Where-Object { $_.TaskName -match "Update" }

los cmdlets de ayuda, descubrimiento, introspección y exploración de PowerShell.

Estos son la clave para dominar PowerShell, porque te permiten aprender cualquier cmdlet sin buscar en Google.

Vamos a verlos todos, explicados con claridad y con ejemplos prácticos.

🟦 1. Get-Command — El “Google” interno de PowerShell

Sirve para descubrir qué comandos existen.

✔️ Ver todos los cmdlets disponibles

powershell

Get-Command

✔️ Buscar cmdlets por verbo

powershell

Get-Command -Verb Get

✔️ Buscar cmdlets por sustantivo

powershell

Get-Command -Noun Service

✔️ Buscar por palabra clave

powershell

Get-Command *firewall*

✔️ Ver qué comandos pertenecen a un módulo

powershell

Get-Command -Module Microsoft.PowerShell.Management

Este es el cmdlet más importante para aprender PowerShell.

🟦 2. Get-Help — La documentación integrada

Es la ayuda oficial, como el man de Linux pero más potente.

✔️ Ver ayuda básica

powershell

Get-Help Get-Service

✔️ Ver ejemplos (muy útil)

powershell

Get-Help Get-Service -Examples

✔️ Ver ayuda detallada

powershell

Get-Help Get-Service -Detailed

✔️ Ver ayuda completa

powershell

Get-Help Get-Service -Full

✔️ Ver ayuda online

powershell

Get-Help Get-Service -Online

🟦 3. Get-Member — El cmdlet para entender objetos

PowerShell trabaja con objetos, no texto. Get-Member te dice:

  • qué propiedades tiene un objeto
  • qué métodos tiene
  • qué tipo de objeto es

✔️ Ejemplo: ver propiedades de un servicio

powershell

Get-Service | Get-Member

Verás cosas como:

  • Name
  • Status
  • DisplayName
  • ServiceType
  • StartType

✔️ Ejemplo: ver propiedades de un proceso

powershell

Get-Process | Get-Member

Esto es oro puro para entender qué puedes hacer con un objeto.

🟦 4. Get-Module — Ver módulos instalados

Los módulos son “paquetes” de cmdlets.

✔️ Ver módulos cargados

powershell

Get-Module

✔️ Ver módulos instalados

powershell

Get-Module -ListAvailable

✔️ Ver cmdlets dentro de un módulo

powershell

Get-Command -Module NetSecurity

🟦 5. Show-Command — Interfaz gráfica para entender un cmdlet

Este es poco conocido pero muy útil.

✔️ Abre una ventana GUI con los parámetros del cmdlet

powershell

Show-Command Get-Service

Te muestra:

  • parámetros
  • tipos
  • valores
  • ejemplos

Ideal para aprender visualmente.

🟦 6. Measure-Object — Medir objetos

Sirve para:

  • contar
  • sumar
  • calcular medias

Ejemplo:

powershell

Get-Process | Measure-Object

🟦 7. Out-GridView — Ver datos en tabla interactiva

Si tienes Windows con interfaz gráfica:

powershell

Get-Process | Out-GridView

Te abre una tabla filtrable, ordenable, muy útil.

🟦 8. Select-Object — Elegir propiedades

Ejemplo:

powershell

Get-Service | Select-Object Name, Status

🟦 9. Format-List y Format-Table — Dar formato a la salida

Lista detallada:

powershell

Get-Service | Format-List *

Tabla:

powershell

Get-Service | Format-Table Name, Status

🟦 10. Get-Alias — Ver alias (atajos)

PowerShell tiene alias tipo Linux:

powershell

Get-Alias

Ejemplos:

  • lsGet-ChildItem
  • catGet-Content
  • psGet-Process

🟦 11. Get-History — Ver historial de comandos

powershell

Get-History

🟦 12. Get-PSDrive — Ver unidades especiales

PowerShell tiene unidades como:

  • HKLM: → Registro
  • Env: → Variables de entorno
  • Cert: → Certificados

powershell

Get-PSDrive

🟦 13. Get-PSProvider — Ver proveedores del sistema

powershell

Get-PSProvider

Te dice qué “sistemas” puedes navegar como si fueran carpetas.

🟦 14. Get-TypeData — Ver tipos de objetos

Muy útil para entender cómo PowerShell formatea objetos.

🟦 15. Update-Help — Actualizar la ayuda oficial

powershell

Update-Help

🟦 RESUMEN: Los cmdlets que te ayudan a entender PowerShell

CmdletPara qué sirve
Get-CommandDescubrir comandos
Get-HelpVer documentación
Get-MemberVer propiedades y métodos de objetos
Get-ModuleVer módulos
Show-CommandVer parámetros en GUI
Get-AliasVer alias
Get-HistoryVer historial
Measure-ObjectMedir datos
Select-ObjectElegir propiedades
Format-Table / Format-ListFormatear salida
Out-GridViewVer datos en tabla interactiva
Get-PSDriveVer unidades especiales
Get-PSProviderVer proveedores del sistema

Con estos, puedes aprender cualquier cmdlet del mundo, incluso uno que no conoces.

Te preparo el mapa mental definitivo de los cmdlets que sirven para entender PowerShell, descubrir comandos, ver cómo funcionan, explorar objetos y aprender cualquier cmdlet sin buscar en Google.

Este es el “kit de supervivencia” de PowerShell. Si dominas estos, dominas el lenguaje entero.

🧠 MAPA MENTAL — Cmdlets para entender PowerShell

Voy a organizarlos en 6 bloques, cada uno con su función clara.

🟦 1. Descubrir comandos

(¿Qué cmdlets existen? ¿Cómo se llaman? ¿Qué puedo hacer?)

🔹 Get-Command — El buscador universal

Sirve para encontrar cualquier comando instalado en tu sistema.

Ejemplos:

powershell

Get-Command
Get-Command -Verb Get
Get-Command -Noun Service
Get-Command *firewall*
Get-Command -Module Microsoft.PowerShell.Management

Es el primer cmdlet que usas cuando no sabes qué cmdlet usar.

🟦 2. Ver ayuda y documentación

(¿Qué hace este cmdlet? ¿Qué parámetros tiene? ¿Cómo se usa?)

🔹 Get-Help — La documentación integrada

Es el equivalente a man en Linux, pero más potente.

powershell

Get-Help Get-Service
Get-Help Get-Service -Examples
Get-Help Get-Service -Detailed
Get-Help Get-Service -Full
Get-Help Get-Service -Online

🔹 Update-Help — Actualizar la ayuda

powershell

Update-Help

🟦 3. Explorar objetos

(PowerShell trabaja con objetos, no texto. Esto es clave.)

🔹 Get-Member — Ver propiedades y métodos

Es el cmdlet más importante para entender qué contiene un objeto.

powershell

Get-Service | Get-Member
Get-Process | Get-Member

Te muestra:

  • propiedades
  • métodos
  • tipo de objeto

Es la herramienta para “abrir” un objeto y ver qué tiene dentro.

🟦 4. Explorar módulos y su contenido

(¿Qué módulos tengo? ¿Qué comandos trae cada uno?)

🔹 Get-Module — Ver módulos cargados o instalados

powershell

Get-Module
Get-Module -ListAvailable

🔹 Import-Module — Cargar un módulo

powershell

Import-Module NetSecurity

🔹 Get-Command -Module — Ver comandos dentro de un módulo

powershell

Get-Command -Module NetSecurity

🟦 5. Explorar el entorno PowerShell

(alias, proveedores, unidades, historial…)

🔹 Get-Alias — Ver alias (atajos tipo Linux)

powershell

Get-Alias

Ejemplos:

  • lsGet-ChildItem
  • catGet-Content
  • psGet-Process

🔹 Get-PSDrive — Ver unidades especiales

powershell

Get-PSDrive

Incluye:

  • C: → disco
  • HKLM: → registro
  • Env: → variables de entorno
  • Cert: → certificados

🔹 Get-PSProvider — Ver proveedores

powershell

Get-PSProvider

Te dice qué “sistemas” puedes navegar como carpetas.

🔹 Get-History — Ver historial de comandos

powershell

Get-History

🟦 6. Explorar y manipular datos

(para entender mejor la salida de otros cmdlets)

🔹 Select-Object — Elegir propiedades

powershell

Get-Service | Select-Object Name, Status

🔹 Sort-Object — Ordenar

powershell

Get-Process | Sort-Object CPU -Descending

🔹 Measure-Object — Contar, sumar, calcular

powershell

Get-Process | Measure-Object

🔹 Format-Table / Format-List — Dar formato

powershell

Get-Service | Format-Table
Get-Service | Format-List *

🔹 Out-GridView — Tabla interactiva (si tienes GUI)

powershell

Get-Process | Out-GridView

🟩 RESUMEN VISUAL (tu mapa mental)

Código

┌──────────────────────────────────────────────┐
│ 1. Descubrir comandos                        │
│   → Get-Command                              │
└──────────────────────────────────────────────┘
┌──────────────────────────────────────────────┐
│ 2. Ver ayuda                                 │
│   → Get-Help                                 │
│   → Update-Help                              │
└──────────────────────────────────────────────┘
┌──────────────────────────────────────────────┐
│ 3. Explorar objetos                          │
│   → Get-Member                               │
└──────────────────────────────────────────────┘
┌──────────────────────────────────────────────┐
│ 4. Explorar módulos                          │
│   → Get-Module                               │
│   → Import-Module                            │
│   → Get-Command -Module                      │
└──────────────────────────────────────────────┘
┌──────────────────────────────────────────────┐
│ 5. Explorar entorno PowerShell               │
│   → Get-Alias                                │
│   → Get-PSDrive                              │
│   → Get-PSProvider                           │
│   → Get-History                              │
└──────────────────────────────────────────────┘
┌──────────────────────────────────────────────┐
│ 6. Explorar datos                            │
│   → Select-Object                            │
│   → Sort-Object                              │
│   → Measure-Object                           │
│   → Format-Table / Format-List               │
│   → Out-GridView                             │
└──────────────────────────────────────────────┘

Esta es una de las diferencias más importantes entre Windows y Linux, y entenderla te da una visión muy clara de cómo funciona la administración en Windows.

Voy a explicártelo con precisión, pero de forma muy clara y práctica, para que entiendas:

  • qué es el usuario Administrador
  • qué significa pertenecer al grupo Administrators
  • qué diferencias hay con root en Linux
  • qué cosas puede hacer uno y no el otro
  • cómo saber si tú eres administrador
  • qué cosas ni siquiera el Administrador puede hacer
  • y cómo se hacen esas cosas especiales

Vamos paso a paso.

🟦 1. En Windows hay dos conceptos distintos

Esto es clave:

✔️ 1. El usuario “Administrador” (la cuenta oculta)

  • Es una cuenta local llamada Administrator.
  • Está deshabilitada por defecto en Windows 10/11.
  • Tiene permisos muy altos, pero no es root.
  • No se usa normalmente por seguridad.

✔️ 2. El grupo “Administrators”

  • Es un grupo que contiene usuarios con permisos administrativos.
  • Si tu usuario pertenece a este grupo, eres administrador del sistema.
  • Esto es lo que se usa en el día a día.

👉 Tú no necesitas usar la cuenta Administrator. Con pertenecer al grupo Administrators ya eres admin.

🟦 2. ¿Cómo saber si tu usuario pertenece al grupo Administrators?

En PowerShell:

powershell

whoami /groups

Si ves:

Código

BUILTIN\Administrators

→ Eres administrador.

O más directo:

powershell

Get-LocalGroupMember Administrators

Si aparece:

Código

David

→ Eres administrador.

🟦 3. ¿Ser administrador en Windows es como ser root en Linux?

NO. Y esta es una diferencia muy importante.

✔️ En Linux:

  • root = poder absoluto
  • no hay restricciones
  • no hay UAC
  • no hay permisos denegados
  • puedes borrar el sistema entero sin preguntar

✔️ En Windows:

Incluso siendo administrador:

  • hay cosas que no puedes hacer directamente
  • hay carpetas protegidas
  • hay permisos del sistema que no puedes modificar
  • hay procesos protegidos
  • hay archivos propiedad de SYSTEM
  • hay claves del registro inaccesibles
  • hay recursos bloqueados por UAC

👉 El administrador de Windows NO es root.

🟦 4. ¿Qué puede hacer el Administrador que un usuario normal no puede?

✔️ Instalar software

✔️ Modificar el registro

✔️ Cambiar permisos de archivos

✔️ Administrar servicios

✔️ Administrar firewall

✔️ Crear usuarios y grupos

✔️ Acceder a carpetas del sistema

✔️ Ejecutar PowerShell como administrador

✔️ Configurar políticas de seguridad

🟦 5. ¿Qué NO puede hacer un administrador (pero root sí)?

Aquí viene lo interesante.

❌ 1. No puede acceder a archivos propiedad de SYSTEM

Ejemplo:

Código

C:\System Volume Information

Ni siquiera como admin.

❌ 2. No puede matar procesos protegidos

Ejemplo:

  • lsass.exe
  • csrss.exe
  • wininit.exe

Windows los protege.

❌ 3. No puede modificar permisos de ciertos recursos críticos

Ejemplo:

  • partes del registro
  • archivos del kernel
  • drivers en uso

❌ 4. No puede desactivar UAC completamente sin romper cosas

UAC es parte del modelo de seguridad moderno.

❌ 5. No puede acceder a sesiones de otros usuarios sin herramientas especiales

En Linux root sí puede.

❌ 6. No puede modificar archivos del sistema en uso

Windows bloquea archivos críticos.

🟦 6. ¿Cómo se hacen esas cosas que ni el administrador puede hacer?

Aquí entran técnicas avanzadas:

✔️ 1. Ejecutar como SYSTEM

SYSTEM es el “root real” de Windows.

Puedes abrir una consola como SYSTEM con:

powershell

psexec -i -s cmd.exe

O en PowerShell:

powershell

psexec -i -s powershell.exe

(PsExec es parte de Sysinternals)

✔️ 2. Tomar posesión de archivos protegidos

powershell

takeown /f "C:\System Volume Information" /r /d y
icacls "C:\System Volume Information" /grant David:F /t

✔️ 3. Usar el modo seguro

Permite modificar archivos bloqueados.

✔️ 4. Usar WinRE (entorno de recuperación)

Acceso completo al sistema sin restricciones.

🟦 7. ¿Necesitas usar SYSTEM en tu día a día?

No. Para un usuario normal o administrador:

👉 Pertenecer al grupo Administrators es suficiente para todo lo que necesitas.

SYSTEM solo se usa para:

  • reparar sistemas
  • modificar archivos protegidos
  • tareas forenses
  • manipular permisos del kernel
  • eliminar malware avanzado
  • modificar el registro profundo

🟦 8. ¿Necesitas hacer algo como “sudo” en Windows?

Sí, pero es diferente.

✔️ En Linux:

Código

sudo comando

✔️ En Windows:

Usas UAC (Control de cuentas de usuario).

Ejemplo:

  • Abrir PowerShell como administrador
  • Ejecutar un programa con “Run as administrator”
  • Usar Start-Process con elevación:

powershell

Start-Process powershell -Verb RunAs

Esto es el equivalente a sudo.

🟦 9. Resumen claro

ConceptoLinuxWindows
SuperusuariorootSYSTEM
Admin normalsudoAdministrators
Cuenta especialrootAdministrator (oculta)
ElevaciónsudoUAC / RunAs
Poder absolutorootSYSTEM (no Administrador)

Vamos a entrar a fondo en todos esos puntos:

  • qué es UAC,
  • qué diferencia hay entre Administrador, SYSTEM y root,
  • qué puede hacer cada uno,
  • qué no puede hacer,
  • cómo saber tus privilegios,
  • cómo elevar permisos,
  • y cómo hacer tareas que ni el Administrador puede hacer.

Te lo explico de forma clara, ordenada y con ejemplos prácticos.

🟦 1. ¿Qué es UAC? (User Account Control)

UAC es Control de Cuentas de Usuario, el sistema que hace que Windows te pregunte:

“¿Quieres permitir que esta aplicación haga cambios en el dispositivo?”

Es el equivalente conceptual a sudo, pero funciona distinto.

✔️ ¿Qué hace UAC realmente?

  • Evita que incluso un usuario administrador ejecute todo con permisos máximos.
  • Obliga a “elevar privilegios” cuando haces algo sensible.
  • Protege el sistema de malware que intenta ejecutarse con permisos de administrador.
  • Separa dos niveles dentro del mismo usuario:
    • token estándar (lo que usas normalmente)
    • token elevado (cuando aceptas el aviso de UAC)

✔️ ¿Por qué existe?

Porque en Windows XP los usuarios iban siempre como administradores y era un desastre de seguridad.

✔️ ¿Qué NO es UAC?

  • No es un sustituto de permisos.
  • No es un firewall.
  • No es un antivirus.

Es simplemente un mecanismo de elevación controlada.

🟦 2. ¿Qué diferencia hay entre Administrador, SYSTEM y root?

Aquí está la clave.

🟩 1. Usuario Administrador (Administrator)

  • Es una cuenta local especial.
  • Está deshabilitada por defecto.
  • Tiene permisos muy altos, pero no absolutos.
  • No es root.

🟩 2. Grupo Administrators

  • Cualquier usuario dentro de este grupo es “administrador”.
  • Tú eres David, miembro de Administrators.
  • Esto te da permisos elevados, pero no totales.

🟩 3. SYSTEM

  • Es el “root real” de Windows.
  • Tiene más permisos que cualquier usuario, incluso Administrator.
  • Es una cuenta interna del sistema operativo.
  • No puedes iniciar sesión como SYSTEM directamente.

🟩 4. root (Linux)

  • Puede hacer absolutamente todo.
  • No tiene restricciones.
  • Puede borrar el kernel, matar cualquier proceso, leer cualquier archivo.

✔️ Comparación rápida

NivelLinuxWindows
Superusuario absolutorootSYSTEM
Administrador normalsudoAdministrators
Cuenta especialrootAdministrator

🟦 3. ¿Qué puede hacer un administrador en Windows?

Si perteneces al grupo Administrators, puedes:

  • Instalar software
  • Modificar el registro
  • Administrar servicios
  • Administrar firewall
  • Crear usuarios y grupos
  • Cambiar permisos de archivos
  • Acceder a carpetas del sistema
  • Ejecutar PowerShell como administrador
  • Configurar políticas de seguridad
  • Usar herramientas de administración remota

Es decir: puedes administrar el sistema completamente.

🟦 4. ¿Qué NO puede hacer un administrador (pero root sí)?

Aquí viene lo interesante.

❌ 1. No puede acceder a archivos propiedad de SYSTEM

Ejemplo:

Código

C:\System Volume Information

Ni siquiera como administrador.

❌ 2. No puede matar procesos protegidos

Ejemplos:

  • lsass.exe
  • csrss.exe
  • wininit.exe

Windows los protege porque matarlos rompe el sistema.

❌ 3. No puede modificar permisos de ciertos recursos críticos

Ejemplo:

  • partes del registro
  • archivos del kernel
  • drivers en uso

❌ 4. No puede desactivar UAC completamente sin romper cosas

Windows moderno depende de UAC.

❌ 5. No puede acceder a sesiones de otros usuarios sin herramientas especiales

En Linux root sí puede.

❌ 6. No puede modificar archivos del sistema en uso

Windows bloquea archivos críticos.

🟦 5. ¿Cómo se hacen esas cosas que ni el administrador puede hacer?

Aquí entran técnicas avanzadas.

🟩 1. Ejecutar como SYSTEM (el “root” de Windows)

Necesitas PsExec (Sysinternals).

Ejemplo:

powershell

psexec -i -s cmd.exe

O:

powershell

psexec -i -s powershell.exe

Esto abre una consola como SYSTEM.

Con SYSTEM puedes:

  • acceder a carpetas protegidas
  • modificar permisos del kernel
  • matar procesos protegidos
  • editar partes del registro inaccesibles

🟩 2. Tomar posesión de archivos protegidos

Ejemplo:

powershell

takeown /f "C:\System Volume Information" /r /d y
icacls "C:\System Volume Information" /grant David:F /t

Esto te da acceso a carpetas normalmente inaccesibles.

🟩 3. Usar el modo seguro

Permite modificar archivos bloqueados.

🟩 4. Usar WinRE (entorno de recuperación)

Acceso completo al sistema sin restricciones.

🟦 6. ¿Cómo saber si eres administrador?

✔️ Método 1 — PowerShell

powershell

whoami /groups

Busca:

Código

BUILTIN\Administrators

✔️ Método 2 — Ver miembros del grupo Administrators

powershell

Get-LocalGroupMember Administrators

✔️ Método 3 — Panel de control

Cuentas de usuario → Tu cuenta → “Administrador”.

🟦 7. ¿Cómo elevar permisos (equivalente a sudo)?

En Windows no hay sudo, pero hay UAC.

✔️ 1. Ejecutar PowerShell como administrador

Botón derecho → “Ejecutar como administrador”.

✔️ 2. Elevar desde PowerShell

powershell

Start-Process powershell -Verb RunAs

✔️ 3. Elevar un comando específico

powershell

Start-Process notepad.exe -Verb RunAs

✔️ 4. Elevar un script

powershell

Start-Process powershell -Verb RunAs -ArgumentList "-File C:\script.ps1"

🟦 8. ¿Debes activar la cuenta Administrator?

No. No aporta nada que no tengas ya como miembro de Administrators.

Solo se usa para:

  • recuperación
  • auditoría
  • entornos corporativos
  • tareas muy específicas

🟦 9. Resumen claro y directo

  • Tú eres administrador porque perteneces al grupo Administrators.
  • Eso te da casi todos los permisos del sistema.
  • Pero no eres SYSTEM, que es el “root” real de Windows.
  • UAC es el sistema que controla la elevación de privilegios.
  • Para tareas extremas, puedes usar SYSTEM con PsExec.
  • Windows tiene más capas de seguridad que Linux, por eso incluso el administrador tiene límites.

1. ¿Qué es PsExec realmente?

PsExec es una herramienta de la suite Sysinternals, creada por Mark Russinovich (actual CTO de Azure). Sysinternals es propiedad de Microsoft, pero no forma parte de Windows.

👉 PsExec no viene preinstalado 👉 PsExec no está incluido en PowerShell 👉 PsExec hay que descargarlo manualmente

Pero es 100% oficial y segura.

🟦 2. ¿Para qué sirve PsExec?

PsExec permite:

  • ejecutar comandos en remoto
  • ejecutar procesos como SYSTEM
  • abrir una consola como SYSTEM
  • ejecutar procesos en otra sesión
  • ejecutar comandos en otra máquina sin instalar nada allí

Es una herramienta de administración avanzada.

🟦 3. ¿Dónde se descarga PsExec?

De la web oficial de Microsoft Sysinternals:

Código

https://learn.microsoft.com/sysinternals/

El paquete se llama PsTools, y dentro viene PsExec.

🟦 4. ¿Cómo se usa PsExec para abrir una consola como SYSTEM?

Una vez descargado:

powershell

psexec -i -s cmd.exe

O para PowerShell:

powershell

psexec -i -s powershell.exe

Esto abre una consola con permisos SYSTEM, que es el “root” real de Windows.

🟦 5. ¿Por qué PsExec no viene con Windows?

Por seguridad.

Si PsExec viniera preinstalado:

  • malware podría usarlo para elevar privilegios
  • cualquier usuario podría abrir SYSTEM sin restricciones
  • sería demasiado fácil romper el sistema

Por eso Microsoft lo distribuye como herramienta separada, para administradores avanzados.

🟦 6. ¿Hay alguna alternativa integrada en Windows?

Sí, pero ninguna tan directa como PsExec.

✔️ 1. Task Scheduler (Programador de tareas)

Permite ejecutar tareas como SYSTEM:

powershell

schtasks /run /tn "TareaComoSYSTEM"

✔️ 2. Servicios

Puedes crear un servicio que se ejecute como SYSTEM.

✔️ 3. WinRE / Modo seguro

Permite modificar archivos protegidos.

✔️ 4. Windows Installer

Algunas instalaciones elevan a SYSTEM automáticamente.

Pero ninguna es tan cómoda como PsExec.

🟦 7. ¿PsExec es necesario para un usuario normal?

No.

Para ti, como administrador de tu VM:

👉 No necesitas PsExec para nada del día a día.

Solo sirve para:

  • acceder a carpetas ultra protegidas
  • matar procesos protegidos
  • modificar permisos del kernel
  • hacer forense
  • eliminar malware avanzado
  • depurar problemas del sistema

🟦 8. ¿PsExec es seguro?

Sí, si lo descargas de Microsoft.

Pero:

  • algunos antivirus lo detectan como “herramienta potencialmente peligrosa”
  • porque puede usarse para elevar privilegios
  • no porque sea malware

Es como sudo en Linux: poderoso, pero peligroso si se usa mal.

🟦 9. Resumen claro

Herramienta¿Viene con Windows?¿Para qué sirve?
PsExec❌ NoEjecutar como SYSTEM, remoto, depuración
PowerShell✔️ SíAdministración general
UAC✔️ SíElevación de privilegios
Administrador✔️ SíUsuario con permisos altos
SYSTEM✔️ SíSuperusuario interno (root)

Vamos a aclarar qué son esos usuarios especiales de Windows (NETWORK SERVICE, LOCAL SERVICE, TrustedInstaller), cómo se relacionan con el Administrador, qué permisos tienen y cómo encajan en el modelo de seguridad de Windows. Esta parte es muy importante porque Windows funciona con cuentas internas del sistema, no solo con usuarios humanos.

Te lo explico de forma clara, profunda y con ejemplos.

🟦 1. Lo primero: estos NO son usuarios normales

Los usuarios:

  • NETWORK SERVICE
  • LOCAL SERVICE
  • TrustedInstaller

NO son usuarios humanos. NO aparecen en la pantalla de login. NO tienen contraseña. NO pertenecen al grupo Administrators.

Son cuentas internas del sistema operativo creadas para ejecutar servicios con permisos específicos.

🟦 2. ¿El Administrador “tiene” estos usuarios?

No. No funcionan así.

👉 El Administrador NO “tiene” los permisos de estas cuentas. 👉 Estas cuentas NO pertenecen al grupo Administrators. 👉 Estas cuentas tienen permisos diferentes, ni más ni menos, sino distintos.

Cada una está diseñada para un propósito concreto.

🟦 3. ¿Qué permisos tiene cada una?

Vamos una por una.

🟩 3.1. LOCAL SERVICE

Nombre interno: NT AUTHORITY\LOCAL SERVICE

✔️ Permisos:

  • Muy limitados
  • Solo acceso local
  • No tiene permisos de administrador
  • No puede modificar el sistema
  • No puede acceder a archivos protegidos

✔️ ¿Para qué se usa?

Servicios que necesitan acceso local pero no deben tener privilegios altos.

Ejemplos:

  • DHCP Client
  • Windows Time

🟩 3.2. NETWORK SERVICE

Nombre interno: NT AUTHORITY\NETWORK SERVICE

✔️ Permisos:

  • Igual que LOCAL SERVICE, pero
  • Puede autenticarse en la red como la máquina
  • Permisos limitados en el sistema local

✔️ ¿Para qué se usa?

Servicios que necesitan acceso a la red pero no deben tener permisos de administrador.

Ejemplos:

  • Servicios de red
  • Servicios web internos

🟩 3.3. TrustedInstaller

Nombre interno: NT SERVICE\TrustedInstaller

Este es el más interesante.

✔️ Permisos:

  • Más permisos que el Administrador
  • Más permisos que SYSTEM en algunas carpetas
  • Control total sobre:
    • archivos del sistema
    • actualizaciones
    • componentes de Windows
    • WinSxS
    • Windows Update

✔️ ¿Para qué se usa?

Para proteger archivos críticos del sistema.

Ejemplos:

  • C:\Windows\System32
  • C:\Windows\WinSxS
  • Archivos del kernel
  • DLLs del sistema

✔️ ¿Por qué existe?

Para evitar que incluso un administrador rompa Windows sin querer.

🟦 4. ¿Quién tiene más permisos? (Jerarquía real)

Aquí tienes la jerarquía de permisos en Windows:

Código

TrustedInstaller
     ↓
SYSTEM
     ↓
Administrators
     ↓
Usuarios normales

✔️ TrustedInstaller

→ Máximo nivel para archivos del sistema.

✔️ SYSTEM

→ Máximo nivel general del sistema operativo.

✔️ Administrators

→ Permisos muy altos, pero limitados por UAC y por TrustedInstaller.

✔️ Usuarios normales

→ Permisos limitados.

🟦 5. ¿Puede el Administrador hacer lo mismo que SYSTEM o TrustedInstaller?

No.

❌ El Administrador NO puede:

  • modificar archivos propiedad de TrustedInstaller
  • borrar DLLs del sistema
  • modificar WinSxS
  • matar procesos protegidos
  • acceder a carpetas ultra protegidas
  • modificar claves del registro protegidas

✔️ Pero puede hacerlo si:

  • toma posesión del archivo
  • cambia permisos
  • usa SYSTEM (con PsExec)
  • usa WinRE
  • usa modo seguro

🟦 6. ¿Cómo ver estos usuarios en tu sistema?

✔️ Verlos en permisos de un archivo

Botón derecho → Propiedades → Seguridad → Avanzado.

Verás:

  • SYSTEM
  • Administrators
  • TrustedInstaller
  • LOCAL SERVICE
  • NETWORK SERVICE

✔️ Verlos en PowerShell

powershell

Get-LocalUser

No los verás porque no son usuarios locales, sino cuentas internas.

Para verlos en un archivo:

powershell

Get-Acl C:\Windows\System32

🟦 7. ¿Cómo tomar control de archivos de TrustedInstaller?

Ejemplo:

powershell

takeown /f C:\Windows\System32\archivo.dll
icacls C:\Windows\System32\archivo.dll /grant David:F

Pero no se recomienda, porque puedes romper Windows.

🟦 8. ¿Cómo actuar como SYSTEM?

Con PsExec:

powershell

psexec -i -s powershell.exe

Comprueba:

powershell

whoami

Verás:

Código

nt authority\system

🟦 9. ¿Cómo actuar como TrustedInstaller?

Hay herramientas como:

  • NSudo
  • PowerRun
  • RunAsTI

Pero esto ya es nivel muy avanzado.

🟦 10. Resumen claro

CuentaTipoPermisosUso
TrustedInstallerServicioMáximos sobre archivos del sistemaWindows Update, WinSxS
SYSTEMCuenta internaMáximos generalesKernel, servicios críticos
AdministratorsGrupoMuy altos, pero limitadosAdministración normal
NETWORK SERVICECuenta internaLimitados + acceso a redServicios de red
LOCAL SERVICECuenta internaMuy limitadosServicios locales

1. SYSTEM y TrustedInstaller NO son lo mismo

Y tampoco funcionan igual.

Piensa en la jerarquía así:

Código

TrustedInstaller   → Máximo nivel sobre archivos del sistema
SYSTEM             → Máximo nivel general del sistema operativo
Administrators     → Nivel alto, pero limitado por UAC y permisos
Usuarios normales  → Nivel básico

✔️ SYSTEM = “root” general

Puede hacer casi todo:

  • matar procesos protegidos
  • acceder a claves del registro ultra protegidas
  • manipular servicios críticos
  • leer archivos del kernel

✔️ TrustedInstaller = “dueño” de Windows

Tiene permisos superiores a SYSTEM pero solo sobre archivos del sistema:

  • C:\Windows\System32
  • C:\Windows\WinSxS
  • DLLs del sistema
  • archivos de Windows Update

TrustedInstaller existe para evitar que incluso SYSTEM o Administrators rompan Windows sin querer.

🟦 2. ¿Por qué TrustedInstaller tiene más permisos que SYSTEM en archivos del sistema?

Porque Windows protege su propia integridad.

✔️ SYSTEM = controla el sistema

✔️ TrustedInstaller = controla los archivos del sistema

Ejemplo:

  • SYSTEM puede matar lsass.exe (si fuerzas)
  • SYSTEM NO puede borrar kernel32.dll
  • TrustedInstaller puede (porque es su propietario)

Esto evita que un administrador o un malware borre archivos críticos.

🟦 3. ¿Cómo se ejecuta SYSTEM sin PsExec? (Alternativas integradas)

Aquí viene lo interesante: Windows sí tiene formas integradas de ejecutar como SYSTEM, sin PsExec.

✔️ 1. Task Scheduler (Programador de tareas)

Puedes crear una tarea que se ejecute como SYSTEM:

  1. Abrir taskschd.msc
  2. Crear tarea
  3. “Ejecutar con los privilegios más altos”
  4. Usuario: SYSTEM
  5. Acción: abrir PowerShell o CMD

Luego ejecutas la tarea manualmente.

Esto te da una consola SYSTEM sin PsExec.

✔️ 2. Servicios de Windows

Puedes crear un servicio que se ejecute como SYSTEM:

powershell

sc create MiServicio binPath= "cmd.exe" type= own
sc start MiServicio

Esto lanza CMD como SYSTEM.

✔️ 3. WinRE (entorno de recuperación)

Cuando entras en la consola de recuperación, estás ejecutando comandos con permisos equivalentes a SYSTEM.

✔️ 4. Modo seguro + consola

Permite modificar archivos bloqueados.

🟦 4. ¿Y TrustedInstaller? ¿Tiene alternativas integradas?

Aquí está la diferencia clave:

👉 NO existe una forma integrada en Windows para ejecutar como TrustedInstaller. 👉 Windows NO quiere que uses TrustedInstaller directamente.

Por eso:

  • no puedes iniciar sesión como TrustedInstaller
  • no puedes abrir CMD como TrustedInstaller
  • no puedes usar Task Scheduler para TrustedInstaller
  • no puedes usar servicios para TrustedInstaller

TrustedInstaller es un servicio interno, no una cuenta de usuario normal.

🟦 5. Entonces, ¿cómo se ejecuta como TrustedInstaller?

Solo con herramientas externas:

✔️ NSudo

✔️ PowerRun

✔️ RunAsTI

Estas herramientas:

  • inician un proceso con el token de TrustedInstaller
  • permiten modificar archivos ultra protegidos
  • permiten acceder a WinSxS
  • permiten reemplazar DLLs del sistema

Pero no vienen con Windows, igual que PsExec.

🟦 6. ¿Por qué Windows NO incluye herramientas para TrustedInstaller?

Por seguridad extrema.

Si Windows incluyera una forma fácil de ejecutar como TrustedInstaller:

  • malware podría reemplazar DLLs del sistema
  • ransomware podría cifrar System32
  • cualquier usuario podría romper Windows sin querer
  • sería imposible mantener la integridad del sistema

Por eso TrustedInstaller está blindado.

🟦 7. Resumen claro y directo

✔️ SYSTEM

  • Nivel más alto general
  • Puedes obtenerlo con Task Scheduler, servicios o PsExec
  • Viene integrado en Windows
  • Permite hacer casi todo

✔️ TrustedInstaller

  • Nivel más alto sobre archivos del sistema
  • NO tiene alternativa integrada
  • Solo accesible con herramientas externas (NSudo, PowerRun…)
  • Protege Windows de modificaciones peligrosas

✔️ Administrador

  • Nivel alto, pero limitado por UAC y permisos NTFS
  • No puede tocar archivos de TrustedInstaller sin tomar posesión

🟦 8. ¿Quieres que te enseñe cómo abrir una consola SYSTEM usando solo herramientas integradas?

Sin PsExec, sin descargas, solo con Task Scheduler.

O si prefieres, te explico:

  • cómo ver qué archivos son propiedad de TrustedInstaller
  • cómo tomar posesión de ellos
  • cómo devolver la propiedad a TrustedInstaller (muy importante)
  • cómo funciona el servicio TrustedInstaller internamente

1. SYSTEM vs TrustedInstaller: la diferencia REAL

✔️ SYSTEM

  • Es la cuenta interna más poderosa a nivel del sistema operativo.
  • Puede controlar servicios, procesos, kernel, registro, etc.
  • Es el equivalente a root en Linux.
  • Puedes obtener una consola SYSTEM con herramientas integradas (Task Scheduler, servicios, WinRE).

✔️ TrustedInstaller

  • Es una cuenta especial del servicio Windows Modules Installer.
  • Tiene permisos superiores a SYSTEM, pero solo sobre archivos del sistema.
  • Es el propietario de:
    • C:\Windows\System32
    • C:\Windows\WinSxS
    • DLLs del sistema
    • archivos de Windows Update
    • componentes del sistema

✔️ Jerarquía real

Código

TrustedInstaller   → Máximo nivel sobre archivos del sistema
SYSTEM             → Máximo nivel general del sistema operativo
Administrators     → Nivel alto, pero limitado por UAC y NTFS
Usuarios normales  → Nivel básico

🟦 2. ¿Por qué TrustedInstaller tiene más permisos que SYSTEM?

Porque Windows protege su propia integridad.

  • SYSTEM controla el sistema.
  • TrustedInstaller controla los archivos del sistema.

Ejemplo:

  • SYSTEM no puede borrar kernel32.dll.
  • TrustedInstaller sí puede (porque es el propietario).

Esto evita que:

  • un administrador borre archivos críticos
  • malware reemplace DLLs del sistema
  • actualizaciones se rompan

🟦 3. ¿Cómo ejecutar como SYSTEM sin PsExec? (Alternativas integradas)

Aquí está lo bueno: Windows SÍ tiene formas integradas de ejecutar como SYSTEM, sin instalar nada.

✔️ 1. Task Scheduler (Programador de tareas)

  1. Abre taskschd.msc
  2. Crear tarea → “Crear tarea”
  3. En “Seguridad”:
    • Usuario: SYSTEM
  4. Marcar “Ejecutar con los privilegios más altos”
  5. Acción:
    • cmd.exe o powershell.exe
  6. Guardar
  7. Botón derecho → Ejecutar

Esto te abre una consola SYSTEM.

✔️ 2. Servicios

Puedes crear un servicio que se ejecute como SYSTEM:

powershell

sc create MiServicio binPath= "cmd.exe" type= own
sc start MiServicio

Esto lanza CMD como SYSTEM.

✔️ 3. WinRE (entorno de recuperación)

Cuando entras en la consola de recuperación, estás ejecutando comandos con permisos equivalentes a SYSTEM.

✔️ 4. Modo seguro

Permite modificar archivos bloqueados.

🟦 4. ¿Existe una alternativa integrada para TrustedInstaller?

👉 NO. 👉 Windows NO quiere que ejecutes nada como TrustedInstaller.

No existe:

  • “Run as TrustedInstaller”
  • ni Task Scheduler como TrustedInstaller
  • ni servicios como TrustedInstaller
  • ni consola TrustedInstaller

TrustedInstaller es un servicio interno, no una cuenta de usuario.

Por eso no hay alternativa integrada como ocurre con SYSTEM.

🟦 5. Entonces, ¿cómo ejecutar como TrustedInstaller?

Solo con herramientas externas, igual que PsExec:

✔️ NSudo

✔️ PowerRun

✔️ RunAsTI

Estas herramientas:

  • obtienen el token de TrustedInstaller
  • lanzan un proceso con ese token
  • permiten modificar archivos ultra protegidos
  • permiten reemplazar DLLs del sistema
  • permiten acceder a WinSxS

❌ NO vienen con Windows

❌ NO vienen con PowerShell

❌ NO vienen preinstaladas

Son como PsExec: herramientas externas, pero muy usadas por administradores avanzados.

🟦 6. ¿Cómo se obtienen estas herramientas?

✔️ 1. PsExec (Sysinternals)

Se descarga desde la web oficial de Microsoft:

Código

https://learn.microsoft.com/sysinternals/

No se puede instalar desde PowerShell directamente (a menos que uses un script que descargue el ZIP).

✔️ 2. NSudo

Proyecto open source:

Código

https://github.com/M2Team/NSudo

Descargas un ZIP con ejecutables.

✔️ 3. PowerRun

Herramienta portable:

Código

https://www.sordum.org/9416/powerrun-v1-6-run-with-highest-privileges/

✔️ 4. RunAsTI

Pequeña utilidad:

Código

https://github.com/jschicht/RunAsTI

🟦 7. ¿Se pueden instalar con PowerShell?

Sí, pero no vienen integradas. Puedes descargarlas con PowerShell usando Invoke-WebRequest, pero eso sigue siendo una descarga externa.

Ejemplo:

powershell

Invoke-WebRequest -Uri "URL" -OutFile "C:\Herramientas\NSudo.zip"

Pero no es algo que venga “de fábrica”.

🟦 8. ¿Qué puede hacer TrustedInstaller que SYSTEM no puede?

✔️ Modificar archivos propiedad de TrustedInstaller

Ejemplo:

  • DLLs del sistema
  • archivos de WinSxS
  • archivos de Windows Update

✔️ Reemplazar componentes del sistema

✔️ Instalar o desinstalar componentes protegidos

✔️ Modificar permisos de archivos críticos

✔️ Actualizar el sistema operativo internamente

SYSTEM no puede hacer estas cosas sin tomar posesión primero.

🟦 9. ¿Qué puede hacer SYSTEM que TrustedInstaller no puede?

✔️ Matar procesos protegidos

✔️ Acceder a claves del registro ultra protegidas

✔️ Controlar servicios críticos

✔️ Manipular el kernel

✔️ Acceder a sesiones de otros usuarios

TrustedInstaller solo controla archivos del sistema.

🟦 10. Resumen final (muy claro)

CuentaViene integradaCómo se usaPermisos
SYSTEM✔️ SíTask Scheduler, servicios, WinREMáximos generales
TrustedInstaller✔️ Sí (como servicio)❌ No se puede usar directamenteMáximos sobre archivos del sistema
PsExec❌ NoDescarga externaEjecutar como SYSTEM
NSudo / PowerRun / RunAsTI❌ NoDescarga externaEjecutar como TrustedInstaller

Publicaciones Similares

  • Windows, tercera parte

    PowerShell avanzado Administración del sistema Seguridad y permisos Automatización WSL y desarrollo Todo mezclado con ejercicios prácticos Vamos a ir bloque por bloque, con ejercicios reales, como si estuviéramos montando tu “caja de herramientas” de Windows. Empezamos por lo lógico: PowerShell base (pero ya con mentalidad avanzada). Cuando dominemos esto, pasamos al siguiente bloque. 1️⃣…

  • Hablando de WINDOWS y comparando con linux y Mac.

    1. USB de Microsoft El “USB de Microsoft” para formatear Windows. Ningún portátil Windows (HP, Asus, Lenovo, Dell, Surface, Framework…) viene con un USB físico de Microsoft incluido de fábrica.Eso es algo que tú creas gratis en 10 minutos: Todos los portátiles premium 2026 tienen también partición de recuperación integrada (pulsas F11 o Shift+Reinicio al encender).Así que no es…

  • Windows, segunda parte

    Ahora que tienes Windows funcionando como un servidor en tu Mac‑mini, es el momento perfecto para aprenderlo bien. Te voy a preparar una guía completa, clara y práctica, pensada para alguien que ya domina macOS y Linux. Así verás Windows con ojos de power‑user, no como un usuario normal. Voy a dividirlo en secciones para…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *