Restart-Service

停止并接着启动一个或更多服务。

语法

Restart-Service [-Name] <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Restart-Service -DisplayName <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Restart-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

说明

Restart-Service cmdlet 向 Windows 服务控制器针对指定服务发送一条停止消息和一条启动消息。如果一项服务已经停止,它将启动而不通知您已发生了错误。您可以通过服务名称或显示名称来指定服务,也可以使用 InputObject 参数传递一个对象来代表您想要重新启动的每一项服务。

参数

-DisplayName <string[]>

指定要重新启动的服务的显示名称。允许使用通配符。

是否为必需?

true

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Exclude <string[]>

忽略指定服务。此参数的值对 Name 参数进行限定。请输入名称元素或模式,例如“s*”。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Force

覆盖阻止命令成功执行的限制,但应确保所做更改不会危及安全性。例如,Force 将停止并重新启动一个具有依赖服务的服务。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Include <string[]>

只重新启动指定的服务。此参数的值对 Name 参数进行限定。请输入名称元素或模式,例如“s*”。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-InputObject <ServiceController[]>

指定 ServiceController 对象来表示要重新启动的服务。输入一个包含对象的变量,或键入可获取对象的命令或表达式。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByValue)

是否接受通配符?

false

-Name <string[]>

指定要重新启动的服务的服务名称。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByValue, ByPropertyName)

是否接受通配符?

false

-PassThru

返回一个表示服务的对象。默认情况下,此 cmdlet 将不产生任何输出。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Confirm

在执行命令之前提示您进行确认。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-WhatIf

描述如果执行该命令会发生什么情况(无需实际执行该命令)。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.ServiceProcess.ServiceController, System.String

可以将服务对象或包含服务名称的字符串通过管道传递给 Restart-Service。

输出

“无”或 System.ServiceProcess.ServiceController

如果使用 PassThru 参数,则 Restart-Service 生成表示重新启动的服务的 System.ServiceProcess.ServiceController 对象。否则,此 cmdlet 将不产生任何输出。

说明

Restart-Service 只有在当前用户有相应权限时才能控制服务。如果某个命令不能正常工作,则可能您不具有所需的权限。

若要查找服务名称并显示您的系统中的服务名称,请键入“get-service”。服务名称显示在 Name 列中,显示名称显示在 DisplayName 列中。

示例 1

C:\PS>restart-service wmi

说明
-----------
此命令在本地计算机上重新启动 Windows Management Instrumentation (WMI) 服务。





示例 2

C:\PS>restart-service -displayname net* -exclude "net logon"

说明
-----------
此命令重新启动显示名称以“Net”开头的服务,“Net Logon”服务除外。





示例 3

C:\PS>get-service net* | where-object {$_.Status -eq "Stopped"} | restart-service

说明
-----------
此命令启动计算机上所有停止的网络服务。

它使用 Get-Service cmdlet 获取代表服务名称以“net”开头的服务的对象。(省略了可选的 Name 参数名称。)管道运算符 (|) 将服务对象发送给 Where-Object cmdlet,后者只选择处于“stopped”状态的服务。另一个管道运算符将选定的服务发送到 Restart-Service。在实践中,在使用此命令之前应使用 WhatIf 参数来查看此命令的影响。





另请参阅

概念

Start-Service
Stop-Service
Suspend-Service
Resume-Service
New-Service
Get-Service
Set-Service