Set-Service
Inicia, detiene y suspende un servicio y cambia sus propiedades.
Sintaxis
Set-Service
[-Name] <String>
[-DisplayName <String>]
[-Credential <PSCredential>]
[-Description <String>]
[-StartupType <ServiceStartupType>]
[-Status <String>]
[-SecurityDescriptorSddl <String>]
[-Force]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Service
[-InputObject] <ServiceController>
[-DisplayName <String>]
[-Credential <PSCredential>]
[-Description <String>]
[-StartupType <ServiceStartupType>]
[-SecurityDescriptorSddl <String>]
[-Status <String>]
[-Force]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Este cmdlet solo está disponible en la plataforma Windows.
El cmdlet Set-Service
cambia las propiedades de un servicio, como Status, Description, DisplayNamey StartupType.
Set-Service
puede iniciar, detener, suspender o pausar un servicio. Para identificar un servicio, escriba su nombre de servicio o envíe un objeto de servicio. O bien, envíe un nombre de servicio o un objeto de servicio a la canalización para Set-Service
.
Ejemplos
Ejemplo 1: Cambiar un nombre para mostrar
En este ejemplo, se cambia el nombre para mostrar de un servicio. Para ver el nombre para mostrar original, use Get-Service
.
Set-Service -Name LanmanWorkstation -DisplayName "LanMan Workstation"
Set-Service
usa el parámetro Name para especificar el nombre del servicio, LanmanWorkstation. El parámetro displayName especifica el nuevo nombre para mostrar, estación de trabajo lanMan.
Ejemplo 2: Cambiar el tipo de inicio de los servicios
En este ejemplo se muestra cómo cambiar el tipo de inicio de un servicio.
Set-Service -Name BITS -StartupType Automatic
Get-Service BITS | Select-Object -Property Name, StartType, Status
Name StartType Status
---- --------- ------
BITS Automatic Running
Set-Service
usa el parámetro Name de para especificar el nombre del servicio, BITS. El parámetro StartupType establece el servicio en Automatic.
Get-Service
usa el parámetro name de para especificar el servicio de bits de y envía el objeto a la canalización.
Select-Object
usa el parámetro Property para mostrar el estado del servicio BITS.
Ejemplo 3: Cambiar la descripción de un servicio
En este ejemplo se cambia la descripción del servicio BITS y se muestra el resultado.
El cmdlet Get-CimInstance
se usa porque devuelve un objeto Win32_Service que incluye el Description del servicio.
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List Name, Description
Name : BITS
Description : Transfers files in the background using idle network bandwidth. If the service is
disabled, then any applications that depend on BITS, such as Windows Update or MSN
Explorer, will be unable to automatically download programs and other information.
Set-Service -Name BITS -Description "Transfers files in the background using idle network bandwidth."
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List Name, Description
Name : BITS
Description : Transfers files in the background using idle network bandwidth.
Get-CimInstance
envía el objeto a la canalización a Format-List
y muestra el nombre y la descripción del servicio. Con fines de comparación, el comando se ejecuta antes y después de actualizar la descripción.
Set-Service
usa el parámetro name para especificar el servicio de BITS de. El parámetro Description especifica el texto actualizado para la descripción de los servicios.
Ejemplo 4: Iniciar un servicio
En este ejemplo, se inicia un servicio.
Set-Service -Name WinRM -Status Running -PassThru
Status Name DisplayName
------ ---- -----------
Running WinRM Windows Remote Management (WS-Manag...
Set-Service
usa el parámetro Name de para especificar el servicio, WinRM. El parámetro Status usa el valor Running para iniciar el servicio. El parámetro PassThru genera un objeto ServiceController que muestra los resultados.
Ejemplo 5: Suspender un servicio
En este ejemplo se usa la canalización para pausar el servicio.
Get-Service -Name Schedule | Set-Service -Status Paused
Get-Service
usa el parámetro Name para especificar el servicio schedule y envía el objeto a la canalización.
Set-Service
usa el parámetro status de para establecer el servicio en Pausado.
Ejemplo 6: Detener un servicio
En este ejemplo se usa una variable para detener un servicio.
$S = Get-Service -Name Schedule
Set-Service -InputObject $S -Status Stopped
Get-Service
usa el parámetro Name de para especificar el servicio, Schedule. El objeto se almacena en la variable , $S
.
Set-Service
usa el parámetro InputObject y especifica el objeto almacenado $S
. El parámetro Status establece el servicio en Stopped.
Ejemplo 7: Detener un servicio en un sistema remoto
En este ejemplo se detiene un servicio en un equipo remoto. Para obtener más información, vea Invoke-Command.
$Cred = Get-Credential
$S = Get-Service -Name Schedule
Invoke-Command -ComputerName server01.contoso.com -Credential $Cred -ScriptBlock {
Set-Service -InputObject $S -Status Stopped
}
Get-Credential
solicita un nombre de usuario y una contraseña, y almacena las credenciales en la variable $Cred
.
Get-Service
usa el parámetro Name para especificar el servicio schedule . El objeto se almacena en la variable , $S
.
Invoke-Command
usa el parámetro computerName para especificar un equipo remoto. El parámetro Credential usa la variable $Cred
para iniciar sesión en el equipo. El scriptBlock de llama a Set-Service
. El parámetro inputObject de especifica el objeto de servicio almacenado $S
. El parámetro Status establece el servicio en Stopped.
Ejemplo 8: Cambio de credencial de un servicio
En este ejemplo se cambian las credenciales que se usan para administrar un servicio.
$credential = Get-Credential
Set-Service -Name Schedule -Credential $credential
Get-Credential
solicita un nombre de usuario y una contraseña, y almacena las credenciales en la variable $credential
.
Set-Service
usa el parámetro Name para especificar el servicio schedule . El parámetro Credential de usa la variable $credential
y actualiza el servicio Schedule.
Ejemplo 9: Cambiar securityDescriptor de un servicio
En este ejemplo se cambia el SecurityDescriptor de un servicio.
$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
Set-Service -Name "BITS" -SecurityDescriptorSddl $SDDL
El securityDescriptor de se almacena en la variable $SDDL
.
Set-Service
usa el parámetro name para especificar el servicio de BITS de. El parámetro securityDescriptorSddl de usa $SDDL
para cambiar el securityDescriptor de para el servicio de BITS de.
Ejemplo 10: Establecimiento del tipo de inicio para varios servicios
El cmdlet Set-Service
solo acepta un nombre de servicio a la vez. Sin embargo, puede canalizar varios servicios a Set-Service
para cambiar la configuración de varios servicios.
Get-Service SQLWriter,spooler |
Set-Service -StartupType Automatic -PassThru |
Select-Object Name, StartType
Name StartType
---- ---------
spooler Automatic
SQLWriter Automatic
Parámetros
-Confirm
Le pide confirmación antes de ejecutar Set-Service
.
Tipo: | SwitchParameter |
Alias: | cf |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Credential
Especifica la cuenta usada por el servicio como cuenta de inicio de sesión de servicio de .
Escriba un nombre de usuario, como User01 o Domain01\User01, o escriba un objeto de PSCredential, como uno generado por el cmdlet Get-Credential
. Si escribe un nombre de usuario, este cmdlet le pedirá una contraseña.
Las credenciales se almacenan en un objeto PSCredential y la contraseña se almacena como SecureString .
Nota
Para obtener más información sobre la protección de datos de SecureString, consulte ¿Qué tan segura es SecureString?.
Este parámetro se introdujo en PowerShell 6.0.
Tipo: | PSCredential |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Description
Especifica una nueva descripción para el servicio.
La descripción del servicio aparece en Administración de equipos, Servicios. El Description no es una propiedad del objetoGet-Service
ServiceController. Para ver la descripción del servicio, use Get-CimInstance
que devuelve un objeto Win32_Service que representa el servicio.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-DisplayName
Especifica un nuevo nombre para mostrar para el servicio.
Nota
Normalmente, Set-Service
solo funciona en servicios de Windows y no en controladores. Sin embargo, si especifica el nombre de un controlador, Set-Service
puede dirigirse al controlador.
Tipo: | String |
Alias: | DN |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Force
Especifica el modo Stop del servicio. Este parámetro solo funciona cuando se usa -Status Stopped
. Si está habilitado, Set-Service
detiene los servicios dependientes antes de que se detenga el servicio de destino. De forma predeterminada, se generan excepciones cuando otros servicios en ejecución dependen del servicio de destino.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-InputObject
Especifica un objeto ServiceController que representa el servicio que se va a cambiar. Escriba una variable que contenga el objeto o escriba un comando o expresión que obtenga el objeto, como un comando Get-Service
. Puede usar la canalización para enviar un objeto de servicio a Set-Service
.
Tipo: | ServiceController |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Name
Especifica el nombre de servicio del servicio que se va a cambiar. No se permiten caracteres comodín. Puede usar la canalización para enviar un nombre de servicio a Set-Service
.
Nota
Normalmente, Set-Service
solo funciona en servicios de Windows y no en controladores. Sin embargo, si especifica el nombre de un controlador, Set-Service
puede dirigirse al controlador.
Tipo: | String |
Alias: | ServiceName, SN |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-PassThru
Devuelve un objeto ServiceController que representa los servicios que se cambiaron. De forma predeterminada, Set-Service
no genera ninguna salida.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-SecurityDescriptorSddl
Especifica el securityDescriptor de para el servicio en formato sddl. La cuenta que llama a Set-Service
con este parámetro debe tener los permisos WRITE_DAC y WRITE_OWNER. Para obtener más información, consulte Derechos de acceso y seguridad del servicio.
Tipo: | String |
Alias: | sd |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-StartupType
Especifica el modo de inicio del servicio.
Los valores aceptables para este parámetro son los siguientes:
- Automático: el sistema operativo inicia o inicia el servicio en el inicio del sistema. Si un servicio iniciado automáticamente depende de un servicio iniciado manualmente, el servicio iniciado manualmente también se inicia automáticamente en el inicio del sistema.
- AutomaticDelayedStart: se inicia poco después del arranque del sistema.
- deshabilitado: el servicio está deshabilitado y no puede iniciarlo un usuario o una aplicación.
- invalidValue: no tiene ningún efecto. El cmdlet no devuelve un error, pero no se cambia startupType del servicio.
- Manual: el servicio solo se inicia manualmente, por un usuario, mediante Service Control Manager o por una aplicación.
Tipo: | ServiceStartupType |
Alias: | StartMode, SM, ST, StartType |
Valores aceptados: | Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Status
Especifica el estado del servicio.
Los valores aceptables para este parámetro son los siguientes:
- Pausado. Suspende el servicio.
- en ejecución. Inicia el servicio.
- Detenido. Detiene el servicio.
Tipo: | String |
Valores aceptados: | Paused, Running, Stopped |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-WhatIf
Muestra lo que ocurriría si se ejecuta Set-Service
. El cmdlet no se ejecuta.
Tipo: | SwitchParameter |
Alias: | wi |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar un objeto de servicio a este cmdlet.
Puede canalizar una cadena que contenga un nombre de servicio a este cmdlet.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
Cuando se usa el parámetro PassThru, este cmdlet devuelve un objeto ServiceController.
Notas
Este cmdlet solo está disponible en plataformas Windows.
Set-Service
requiere permisos elevados. Use la opción Ejecutar como administrador.
Set-Service
solo puede controlar los servicios cuando el usuario actual tiene permisos para administrar los servicios. Si un comando no funciona correctamente, es posible que no tenga los permisos necesarios.
Para buscar el nombre del servicio o el nombre para mostrar de un servicio, use Get-Service
. Los nombres de servicio se encuentran en la columna Nombre y los nombres para mostrar se encuentran en la columna DisplayName.