0%
Comandos sencillos para gestionar los servicios de Windows

Comandos sencillos para gestionar los servicios de Windows

Descubre los comandos básicos para gestionar los servicios de Windows, desde la visualización hasta la detención forzada.

I

InSkillCoach

· min

Comandos sencillos para gestionar los servicios de Windows

Descubre los comandos esenciales para gestionar los servicios de Windows, ya sea mediante PowerShell o el símbolo del sistema.

1. Visualización de los servicios

Lista de servicios

# Mostrar todos los servicios
Get-Service

# Mostrar un servicio específico
Get-Service -Name "Windows Update"

# Mostrar los servicios en ejecución
Get-Service | Where-Object {$_.Status -eq "Running"}

# Mostrar los servicios detenidos
Get-Service | Where-Object {$_.Status -eq "Stopped"}

Información detallada

# Mostrar los detalles de un servicio
Get-Service -Name "Windows Update" | Format-List *

# Mostrar los servicios que dependen de un servicio
Get-Service -Name "Windows Update" -DependentServices

# Mostrar los servicios de los que depende un servicio
Get-Service -Name "Windows Update" -RequiredServices

2. Gestión de los servicios

Inicio y detención

# Iniciar un servicio
Start-Service -Name "Windows Update"

# Detener un servicio
Stop-Service -Name "Windows Update"

# Reiniciar un servicio
Restart-Service -Name "Windows Update"

# Suspender un servicio (pausa)
Suspend-Service -Name "Windows Update"

# Reanudar un servicio suspendido
Resume-Service -Name "Windows Update"

Detención forzada (equivalente a kill -9)

# Detención forzada de un servicio
Stop-Process -Name "svchost" -Force

# Detención forzada con confirmación
Stop-Process -Name "svchost" -Force -Confirm

# Detención forzada de un servicio y de sus procesos hijo
Stop-Process -Name "svchost" -Force -IncludeChildProcess

Detención normal (equivalente a kill -15)

# Detención normal de un servicio
Stop-Service -Name "Windows Update"

# Detención normal con espera
Stop-Service -Name "Windows Update" -Force

# Detención normal con timeout
$service = Get-Service -Name "Windows Update"
$service.Stop()
Start-Sleep -Seconds 30
if ($service.Status -eq "Running") {
    Stop-Process -Name "svchost" -Force
}

3. Configuración de los servicios

Tipo de inicio

# Definir el tipo de inicio
Set-Service -Name "Windows Update" -StartupType Automatic

# Tipos disponibles:
# - Automatic (Inicio automático)
# - Manual (Inicio manual)
# - Disabled (Deshabilitado)

# Comprobar el tipo de inicio
Get-Service -Name "Windows Update" | Select-Object Name, StartType

Permisos

# Ver los permisos de un servicio
Get-Acl -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Windows Update"

# Modificar los permisos
$acl = Get-Acl -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Windows Update"
$rule = New-Object System.Security.AccessControl.ServiceAccessRule(
    "Administrateurs",
    "FullControl",
    "Allow"
)
$acl.SetAccessRule($rule)
Set-Acl -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Windows Update" -AclObject $acl

4. Comandos CMD (símbolo del sistema)

Gestión básica

# Iniciar un servicio
net start "Windows Update"

# Detener un servicio
net stop "Windows Update"

# Ver el estado de un servicio
sc query "Windows Update"

# Ver todos los servicios
sc query state= all

Detención forzada

# Detención forzada de un servicio
taskkill /F /IM svchost.exe

# Detención forzada con confirmación
taskkill /F /IM svchost.exe /T

# Detención forzada de un servicio específico
taskkill /F /FI "SERVICES eq Windows Update"

5. Buenas prácticas

Comprobación antes de la detención

# Comprobar si un servicio es crítico
function Test-CriticalService {
    param (
        [string]$ServiceName
    )
    
    $criticalServices = @(
        "LSASS",
        "Winlogon",
        "Services",
        "RpcSs"
    )
    
    if ($criticalServices -contains $ServiceName) {
        Write-Warning "Ce service est critique !"
        return $true
    }
    return $false
}

# Ejemplo de uso
if (-not (Test-CriticalService "Windows Update")) {
    Stop-Service -Name "Windows Update"
}

Copia de seguridad de la configuración

# Guardar la configuración de un servicio
function Backup-ServiceConfig {
    param (
        [string]$ServiceName
    )
    
    $backupPath = "C:\Backups\Services\$ServiceName_$(Get-Date -Format 'yyyyMMdd').txt"
    
    # Crear la carpeta si es necesario
    if (-not (Test-Path "C:\Backups\Services")) {
        New-Item -ItemType Directory -Path "C:\Backups\Services"
    }
    
    # Guardar la configuración
    Get-Service -Name $ServiceName | Format-List * | Out-File $backupPath
    
    return $backupPath
}

Conclusión

Puntos clave que hay que recordar:

  • Comprobar siempre si un servicio es crítico antes de detenerlo
  • Preferir la detención normal a la detención forzada
  • Hacer una copia de seguridad de la configuración antes de modificarla
  • Utilizar los comandos adecuados según el contexto
  • Documentar las modificaciones realizadas

Comandos esenciales:

  • Get-Service: listar los servicios
  • Start-Service: iniciar un servicio
  • Stop-Service: detener un servicio de forma normal
  • Stop-Process -Force: detener un servicio de forma forzada
  • Set-Service: configurar un servicio
InSkillCoach

Acerca de InSkillCoach

Experto en formación y tecnologías

Coach especializado en tecnologías avanzadas e IA, impulsado por GNeurone Inc.

Certificaciones:

  • AWS Certified Solutions Architect – Professional
  • Certificaciones de Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
786
106

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!