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.
InSkillCoach
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 serviciosStart-Service: iniciar un servicioStop-Service: detener un servicio de forma normalStop-Process -Force: detener un servicio de forma forzadaSet-Service: configurar un servicio
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+
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión