Compartir a través de


Set-Service

Inicia, detiene y suspende un servicio y cambia sus propiedades.

Sintaxis

Name (Es el valor predeterminado).

Set-Service
    [-Name] <String>
    [-DisplayName <String>]
    [-Credential <PSCredential>]
    [-Description <String>]
    [-StartupType <ServiceStartupType>]
    [-Status <String>]
    [-SecurityDescriptorSddl <String>]
    [-Force]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InputObject

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 visible de un servicio. Para ver el nombre de pantalla 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, LanMan Workstation.

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 para especificar el nombre del servicio, BITS. El parámetro StartupType establece el servicio en Automatic.

Get-Service usa el parámetro Name para especificar el servicio BITS y envía el objeto por 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.

Se utiliza el cmdlet Get-CimInstance porque devuelve un objeto Win32_Service que incluye la Descripción 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 por 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 BITS. 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 de horario y envía el objeto por la canalización. Set-Service usa el parámetro Status 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 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 Programación. 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 llama a Set-Service. El parámetro InputObject 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 Programación. El parámetro Credential utiliza la variable $credential y actualiza el servicio Programación.

Ejemplo 9: Cambiar el SecurityDescriptor de un servicio

Este ejemplo 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 BITS. El parámetro SecurityDescriptorSddl usa $SDDL para cambiar el SecurityDescriptor del servicio BITS .

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.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:cf

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Credential

Especifica la cuenta que utiliza el servicio como Cuenta de inicio de sesión del servicio.

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.

Propiedades del parámetro

Tipo:PSCredential
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Description

Especifica una nueva descripción para el servicio.

La descripción del servicio aparece en Administración de equipos, Servicios. Description no es una propiedad del objeto Get-ServiceServiceController. Para ver la descripción del servicio, use Get-CimInstance que devuelve un objeto Win32_Service que representa el servicio.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-DisplayName

Especifica un nombre para mostrar nuevo para el servicio.

Nota:

Normalmente, Set-Service solo funciona en servicios de Windows y no en controladores. No obstante, si especifica el nombre de un controlador, Set-Service puede apuntar al controlador.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:DN

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades del parámetro

Tipo:ServiceController
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

InputObject
Posición:0
Mandatory:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Name

Especifica el nombre de servicio del servicio que se va a cambiar. No se admite el uso de 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. No obstante, si especifica el nombre de un controlador, Set-Service puede apuntar al controlador.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:NombreDelServicio, SN

Conjuntos de parámetros

Name
Posición:0
Mandatory:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-PassThru

Devuelve un objeto ServiceController que representa los servicios que se cambiaron. De forma predeterminada, Set-Service no genera ninguna salida.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-SecurityDescriptorSddl

Especifica el SecurityDescriptor 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.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:Sd

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-StartupType

Especifica el modo de inicio del servicio.

Los valores aceptables para este parámetro son los siguientes:

  • Automático - El servicio es iniciado o fue iniciado por el sistema operativo, al 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 el StartupType del servicio.
  • Manual: el servicio solo se inicia manualmente, por un usuario, mediante Service Control Manager o por una aplicación.

Propiedades del parámetro

Tipo:ServiceStartupType
Valor predeterminado:None
Valores aceptados:Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual
Admite caracteres comodín:False
DontShow:False
Alias:StartMode, SM, ST, StartType

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Status

Especifica el estado del servicio.

Los valores aceptables para este parámetro son los siguientes:

  • En pausa Suspende el servicio.
  • Ejecución. inicia el servicio.
  • Detenido. Detiene el servicio.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Valores aceptados:Paused, Running, Stopped
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-WhatIf

Muestra lo que ocurriría si se ejecuta Set-Service. El cmdlet no se ejecuta.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:Wi

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

ServiceController

Puede canalizar un objeto de servicio a este cmdlet.

String

Puede canalizar una cadena que contenga un nombre de servicio a este cmdlet.

Salidas

None

De forma predeterminada, este cmdlet no devuelve ninguna salida.

ServiceController

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. Utilice 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 Name y los nombres para mostrar aparecen en la columna DisplayName.