Start-Service
启动一个或多个已停止的服务。
语法
Start-Service
[-InputObject] <ServiceController[]>
[-PassThru]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-Service
[-Name] <String[]>
[-PassThru]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-Service
[-PassThru]
-DisplayName <String[]>
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
此 cmdlet 仅在 Windows 平台上可用。
Start-Service
cmdlet 将启动消息发送到每个指定服务的 Windows 服务控制器。 如果服务已在运行,则会忽略该消息,而不会出错。 可以按服务名称或显示名称指定服务,也可以使用 InputObject 参数来提供表示要启动的服务的服务对象。
示例
示例 1:使用服务名称启动服务
此示例在本地计算机上启动 EventLog 服务。 Name 参数按服务名称标识服务。
Start-Service -Name "eventlog"
示例 2:在不启动服务的情况下显示信息
此示例显示如果启动具有包含“remote”的显示名称的服务,会发生什么情况。
Start-Service -DisplayName *remote* -WhatIf
DisplayName 参数按服务显示名称而不是服务名称来标识服务。 WhatIf 参数会导致 cmdlet 显示运行命令但未进行更改时会发生的情况。
示例 3:启动服务并在文本文件中记录作
此示例在计算机上启动 Windows Management Instrumentation (WMI) 服务,并将作记录添加到 services.txt 文件。
$s = Get-Service wmi
Start-Service -InputObject $s -PassThru | Format-List >> services.txt
首先,我们使用 Get-Service
获取表示 WMI 服务的对象,并将其存储在 $s
变量中。 接下来,启动服务。 如果没有 PassThru 参数,Start-Service
不会创建任何输出。 管道运算符(|
)通过将对象输出 Start-Service
传递给 Format-List
cmdlet,将对象格式化为其属性的列表。 追加重定向运算符(>>
)将输出重定向到 services.txt 文件。 输出将添加到现有文件的末尾。
示例 4:启动已禁用的服务
此示例演示如何在服务的启动类型 禁用时启动服务。
PS> Start-Service tlntsvr
Start-Service : Service 'Telnet (TlntSvr)' cannot be started due to the following error: Cannot
start service TlntSvr on computer '.'.
At line:1 char:14
+ Start-Service <<<< tlntsvr
PS> Get-CimInstance win32_service | Where-Object Name -eq "tlntsvr"
ExitCode : 0
Name : TlntSvr
ProcessId : 0
StartMode : Disabled
State : Stopped
Status : OK
PS> Set-Service tlntsvr -StartupType manual
PS> Start-Service tlntsvr
第一次尝试启动 Telnet 服务(tlntsvr)失败。
Get-CimInstance
命令显示 Tlntsvr 服务的 StartMode 属性 禁用。
Set-Service
cmdlet 将开始类型更改为 手动。 现在,我们可以重新提交 Start-Service
命令。 这一次,命令成功。 若要验证命令是否成功,请运行 Get-Service
。
参数
-Confirm
在运行 cmdlet 之前,提示你进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DisplayName
指定要启动的服务的显示名称。 允许使用通配符。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | True |
-Exclude
指定此 cmdlet 省略的服务。 此参数的值限定 Name 参数。 输入名称元素或模式,例如 s*
。 允许使用通配符。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | True |
-Include
指定此 cmdlet 启动的服务。 此参数的值限定 Name 参数。 输入名称元素或模式,例如 s*
。 允许使用通配符。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | True |
-InputObject
指定 ServiceController 表示要启动的服务的对象。 输入包含对象的变量,或键入获取对象的命令或表达式。
类型: | ServiceController[] |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-Name
指定要启动的服务的服务名称。
参数名称是可选的。 可以使用 名称 或其别名、ServiceName,也可以省略参数名称。
类型: | String[] |
别名: | ServiceName |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-PassThru
返回一个表示服务的对象。 默认情况下,此 cmdlet 不生成任何输出。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示 cmdlet 运行时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以通过管道将服务对象传递给此 cmdlet。
可以通过管道将包含服务名称的字符串传递给此 cmdlet。
输出
None
默认情况下,此 cmdlet 不返回任何输出。
使用 PassThru 参数时,此 cmdlet 将返回表示服务的 ServiceController 对象。
备注
PowerShell 包含以下 Start-Service
别名:
- 窗户:
sasv
此 cmdlet 仅在 Windows 平台上可用。
- 默认情况下,只有管理员组的成员才能启动、停止、暂停、恢复或重启服务。 如果你是管理员组的成员,则需要从提升的 PowerShell 会话运行
Start-Service
。 使用 以管理员身份运行 选项启动 PowerShell。 - 若要查找系统上的服务名称和显示名称,请键入
Get-Service
。 服务名称显示在 名称 列中,显示名称显示在 DisplayName 列中。 - 只能启动具有手动、自动或自动启动类型的服务(延迟启动)。 无法启动具有“已禁用”启动类型的服务。 如果
Start-Service
命令失败并显示消息Cannot start service \<service-name\> on computer
,请使用Get-CimInstance
查找服务的启动类型;如果需要,请使用Set-Service
cmdlet 更改服务的启动类型。 - 某些服务(如性能日志和警报(SysmonLog)在没有工作要做时会自动停止。 当 PowerShell 启动几乎立即停止自己的服务时,会显示以下消息:
Service \<display-name\> start failed.