Restart-Computer

Reinicia el sistema operativo en equipos locales y remotos.

Syntax

Restart-Computer
       [-DcomAuthentication <AuthenticationLevel>]
       [-Impersonation <ImpersonationLevel>]
       [-WsmanAuthentication <String>]
       [-Protocol <String>]
       [[-ComputerName] <String[]>]
       [[-Credential] <PSCredential>]
       [-Force]
       [-Wait]
       [-Timeout <Int32>]
       [-For <WaitForServiceTypes>]
       [-Delay <Int16>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restart-Computer
       [-AsJob]
       [-DcomAuthentication <AuthenticationLevel>]
       [-Impersonation <ImpersonationLevel>]
       [[-ComputerName] <String[]>]
       [[-Credential] <PSCredential>]
       [-Force]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

El Restart-Computer cmdlet reinicia el sistema operativo en los equipos locales y remotos.

Puede usar los parámetros de Restart-Computer para ejecutar las operaciones de reinicio como un trabajo en segundo plano, para especificar los niveles de autenticación y las credenciales alternativas, limitar las operaciones que se ejecutan al mismo tiempo y forzar un reinicio inmediato.

A partir de Windows PowerShell 3.0, puede esperar a que se complete el reinicio antes de ejecutar el siguiente comando. Especifique un tiempo de espera y un intervalo de consulta y espere a que determinados servicios estén disponibles en el equipo reiniciado. Esta característica facilita el uso Restart-Computer en scripts y funciones.

Puede usar el protocolo WS-Management (WSMan) para reiniciar el equipo, en caso de que las llamadas al Modelo de objetos de componente distribuido (DCOM) estén bloqueadas, como por ejemplo, por un firewall de empresa. Para obtener más información, vea WS-Management Protocol.

Este cmdlet requiere la comunicación remota de Windows PowerShell solo cuando se usa el parámetro AsJob en un comando.

Ejemplos

Ejemplo 1: Reiniciar el equipo local

Restart-Computer reinicia el equipo local.

Restart-Computer

Ejemplo 2: Reinicio de varios equipos

Restart-Computer puede reiniciar equipos remotos y locales. El parámetro ComputerName acepta una matriz de nombres de equipo.

Restart-Computer -ComputerName Server01, Server02, localhost

Ejemplo 3: Reiniciar equipos como trabajo en segundo plano

Estos comandos ejecutan un Restart-Computer comando como trabajo en segundo plano en dos equipos remotos y, a continuación, obtienen los resultados.

Dado que AsJob crea el trabajo en el equipo local y devuelve automáticamente los resultados al equipo local, puede ejecutarse Receive-Job como un comando local.

$Job = Restart-Computer -ComputerName "Server01", "Server02" -AsJob
$Job | Receive-Job

Restart-Computer usa el parámetro ComputerName para especificar Server01 y Server02. El parámetro AsJob ejecuta el comando como un trabajo en segundo plano. El objeto de trabajo se almacena en la $Job variable . $Job se envía a la canalización al Receive-Job cmdlet que obtiene los resultados.

Ejemplo 4: Reiniciar un equipo remoto

Restart-Computer reinicia un equipo remoto con la suplantación personalizada y la configuración de autenticación.

Restart-Computer -ComputerName Server01 -Impersonation Anonymous -DcomAuthentication PacketIntegrity

Restart-Computer usa el parámetro ComputerName para especificar Server01. El parámetro Impersonation especifica Anonymous para ocultar la identidad del solicitante. El parámetro DcomAuthentication especifica PacketIntegrity como nivel de autenticación de la conexión.

Ejemplo 5: Forzar el reinicio de equipos enumerados en un archivo de texto

En este ejemplo se fuerza un reinicio inmediato de los equipos enumerados en el Domain01.txt archivo. Los nombres de equipo del archivo de texto se almacenan en una variable. El parámetro Force fuerza un reinicio inmediato y el parámetro ThrottleLimit limita el número de conexiones simultáneas.

$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force -ThrottleLimit 10

Get-Content usa el parámetro Path para obtener una lista de nombres de equipo de un archivo de texto, Domain01.txt. Los nombres de equipo se almacenan en la variable $Names. Get-Credential le pide un nombre de usuario y una contraseña y almacena los valores en la variable $Creds. Restart-Computer usa los parámetros ComputerName y Credential con sus variables. El parámetro Force provoca un reinicio inmediato de cada equipo. El parámetro ThrottleLimit limita el comando a 10 conexiones simultáneas.

Ejemplo 6: Reinicio de un equipo remoto y espera a PowerShell

Restart-Computer reinicia el equipo remoto y, a continuación, espera hasta 5 minutos (300 segundos) para que PowerShell esté disponible en el equipo reiniciado antes de continuar.

Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2

Restart-Computer usa el parámetro ComputerName para especificar Server01. El parámetro Wait espera a que finalice el reinicio. For especifica que PowerShell puede ejecutar comandos en el equipo remoto. El parámetro Timeout especifica una espera de cinco minutos. El parámetro Delay consulta el equipo remoto cada dos segundos para determinar si se reinicia.

Ejemplo 7: Reiniciar un equipo mediante el protocolo WSMan

Restart-Computer reinicia el equipo remoto mediante el protocolo WSMan en lugar del valor predeterminado, DCOM. La autenticación Kerberos determina si el usuario actual tiene permiso para reiniciar el equipo remoto.

Esta configuración está diseñada para empresas en las que se produce un error en los reinicios basados en DCOM porque DCOM está bloqueado. Por ejemplo, mediante un firewall.

Restart-Computer -ComputerName Server01 -Protocol WSMan -WsmanAuthentication Kerberos

Restart-Computerusa el parámetro ComputerName para especificar el equipo remoto Server01. El parámetro Protocol especifica el uso del protocolo WSMan. El parámetro WsmanAuthentication especifica el método de autenticación como Kerberos.

Parámetros

-AsJob

Indica que Restart-Computer se ejecuta como un trabajo en segundo plano.

Para usar este parámetro, los equipos locales y remotos deben configurarse para la comunicación remota. En Windows Vista y versiones posteriores del sistema operativo Windows, debe abrir PowerShell mediante la opción Ejecutar como Administración istrator. Para obtener más información, consulte about_Remote_Requirements.

Al especificar el parámetro AsJob , el comando devuelve inmediatamente un objeto que representa el trabajo en segundo plano. Puede seguir trabajando en la sesión mientras finaliza el trabajo. Se crea el trabajo en el equipo local y, automáticamente, se devuelven los resultados de los equipos remotos al equipo local. Para administrar el trabajo, use los cmdlets job . Para obtener los resultados del trabajo, use el Receive-Job cmdlet .

Para obtener más información sobre los trabajos en segundo plano de Windows PowerShell, consulte about_Jobs y about_Remote_Jobs.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Especifica un nombre de equipo o una matriz separada por comas de nombres de equipo. Restart-Computeracepta objetos ComputerName de la canalización o variables.

Escriba el nombre NetBIOS, una dirección IP o un nombre de dominio completo de un equipo remoto. Para especificar el equipo local, escriba el nombre del equipo, un punto .o localhost.

Este parámetro no se basa en la comunicación remota de PowerShell. Puede usar el parámetro ComputerName incluso si el equipo no está configurado para ejecutar comandos remotos.

Si no se especifica el parámetro ComputerName , Restart-Computer reinicia el equipo local.

Type:String[]
Aliases:CN, __SERVER, Server, IPAddress
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Le pide confirmación antes de ejecutar Restart-Computer.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Especifica una cuenta de usuario que tiene permiso para realizar esta acción. El valor predeterminado es el usuario actual.

Escriba un nombre de usuario, como User01 o Domain01\User01, o escriba un objeto PSCredential generado por el Get-Credential cmdlet . Si escribe un nombre de usuario, se le pedirá que escriba la 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 SecureString , consulte ¿Cómo es secure is SecureString?.

Type:PSCredential
Position:1
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DcomAuthentication

Especifica el nivel de autenticación que se usa para la conexión de WMI. Restart-Computer usa WMI.

Los valores válidos son:

  • Llamada: autenticación COM de nivel de llamada
  • Conectar: autenticación COM de nivel de Conectar
  • Valor predeterminado: Autenticación de Windows
  • Ninguno: sin autenticación COM
  • Paquete: autenticación COM de nivel de paquete.
  • PacketIntegrity: autenticación COM de nivel de integridad de paquetes
  • PacketPrivacy: autenticación COM de nivel de privacidad de paquetes.
  • Sin cambios: el nivel de autenticación es el mismo que el comando anterior.

Para obtener más información, consulte AuthenticationLevel (enumeración).

Este parámetro se incorporó en Windows PowerShell 3.0.

Type:AuthenticationLevel
Aliases:Authentication
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Delay

Especifica la frecuencia de las consultas, en segundos. PowerShell consulta el servicio especificado por el parámetro For para determinar si el servicio está disponible después de reiniciar el equipo.

Este parámetro solo es válido junto con los parámetros Wait y For .

Este parámetro se incorporó en Windows PowerShell 3.0.

Si no se especifica el parámetro Delay , Restart-Computer usa un retraso de cinco segundos.

Type:Int16
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-For

Especifica el comportamiento de PowerShell a medida que espera a que el servicio o la característica especificados estén disponibles después de reiniciar el equipo. Este parámetro solo es válido con el parámetro Wait .

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

  • Valor predeterminado: espera a que PowerShell se reinicie.
  • PowerShell: puede ejecutar comandos en una sesión remota de PowerShell en el equipo.
  • WMI: recibe una respuesta a una consulta de Win32_ComputerSystem para el equipo.
  • WinRM: puede establecer una sesión remota en el equipo mediante WS-Management.

Este parámetro se incorporó en Windows PowerShell 3.0.

Type:WaitForServiceTypes
Accepted values:Wmi, WinRM, PowerShell
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Fuerza un reinicio inmediato del equipo.

Type:SwitchParameter
Aliases:f
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Impersonation

Especifica el nivel de suplantación que usa este cmdlet para llamar a WMI. Restart-Computer usa WMI. Los valores permitidos para este parámetro son los siguientes:

  • Valor predeterminado: suplantación predeterminada. A pesar del nombre, este no es el valor predeterminado.
  • Anónimo: oculta la identidad del autor de la llamada.
  • Identificar: permite a los objetos consultar las credenciales del autor de la llamada.
  • Suplantación: permite que los objetos usen las credenciales del autor de la llamada.
Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Protocol

Especifica el protocolo que se usa para reiniciar los equipos. Los valores válidos son WSMan y DCOM.

Este parámetro se incorporó en Windows PowerShell 3.0.

Type:String
Accepted values:DCOM, WSMan
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

Especifica el número máximo de operaciones simultáneas que se pueden establecer para ejecutar este comando. El límite solo se aplica al comando actual, no a la sesión ni al equipo.

Si no se especifica el parámetro ThrottleLimit o se usa un valor de 0, Restart-Computer usa un máximo de 32 conexiones simultáneas.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Timeout

Especifica el tiempo de espera, en segundos. Cuando transcurre el tiempo de espera, Restart-Computer vuelve al símbolo del sistema, incluso si los equipos no se reinician.

El parámetro Timeout solo es válido con el parámetro Wait . El tiempo de espera invalida el período de espera indefinido del parámetro Wait .

Este parámetro se incorporó en Windows PowerShell 3.0.

Type:Int32
Aliases:TimeoutSec
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Wait

Restart-Computer suprime el símbolo del sistema de PowerShell y bloquea la canalización hasta que se hayan reiniciado los equipos. Puede usar este parámetro en un script para reiniciar equipos y, a continuación, continuar procesando cuando finalice el reinicio.

El parámetro Wait espera indefinidamente para que los equipos se reinicien. Puede usar Timeout para ajustar el tiempo de espera y los parámetros For y Delay para esperar a que determinados servicios estén disponibles en los equipos reiniciados.

El parámetro Wait no es válido cuando se reinicia el equipo local. Si el valor del parámetro ComputerName contiene los nombres de los equipos remotos y el equipo local, Restart-Computer genera un error de no terminación para Esperar en el equipo local, pero espera a que los equipos remotos se reinicien.

Este parámetro se incorporó en Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Muestra lo que sucedería si se Restart-Computer ejecuta. El Restart-Computer cmdlet no se ejecuta.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WsmanAuthentication

Especifica el mecanismo que se usa para autenticar las credenciales de usuario. Este parámetro se incorporó en Windows PowerShell 3.0.

Los valores aceptables para este parámetro son: Basic, CredSSP, Default, Digest, Kerberos y Negotiate.

Para obtener más información, consulte AuthenticationMechanism.

Advertencia

La autenticación del proveedor de servicios de seguridad de credenciales (CredSSP), en la que las credenciales de usuario se pasan a un equipo remoto para autenticarse, está diseñada para comandos que requieren autenticación en más de un recurso, como el acceso a un recurso compartido de red remoto. Este mecanismo el riesgo de seguridad de la operación remota. Si el equipo remoto se ve comprometido, las credenciales que se pasen a él se pueden utilizar para controlar la sesión de red.

Type:String
Accepted values:Basic, CredSSP, Default, Digest, Kerberos, Negotiate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

String

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

Salidas

None

De forma predeterminada, este cmdlet no devuelve ninguna salida.

System.Management.Automation.RemotingJob

Cuando se usa el parámetro AsJob , este cmdlet devuelve un objeto de trabajo.

Notas

  • Restart-Computer solo funcionan en equipos que ejecutan Windows y requieren WinRM y WMI para apagar un sistema, incluido el sistema local.
  • Restart-Computerusa el método Win32Shutdown de la clase Win32_OperatingSystem Instrumental de administración de Windows (WMI). Este método requiere que el privilegio SeShutdownPrivilege esté habilitado para la cuenta de usuario que se usa para reiniciar la máquina.

En Windows PowerShell 2.0, el parámetro AsJob no funciona de forma confiable al reiniciar o detener equipos remotos. En Windows PowerShell 3.0, se cambia la implementación para resolver este problema.