如下说明是翻译
: help Start-Service
产生的帮助信息
.
译者
: Edengundam(
马涛
)
Start-Service
大纲
启动一个或多个停止的服务
.
语法
Start-Service [-name] <string[]> [-include <string[]>] [-exclude <string[]>] [-passthru] [-whatIf] [-confirm] [<CommonParameters>]
Start-Service -displayName <string[]> [-include <string[]>] [-exclude <string[]>] [-passthru] [-whatIf] [-confirm] [<CommonParameters>]
Start-Service [-inputObject <ServiceController[]>] [-include <string[]>] [-exclude <string[]>] [-passthru] [-whatIf] [-confirm] [<CommonParameters>]
详细描述
Start-Service cmdlet
向
Windows
服务控制器
(Service Controller)
为每个指定的服务发送启动消息
.
如果服务已经处于运行中
,
此消息只是被简单的忽略而不会导致错误
.
你可以通过服务名称或显示名称
(display name)
来指定需要挂起的服务
.
你还可以使用参数
InputObject
传递你需要启动的服务对象
(
译者注
:
例如使用
Get-Service
返回的对象或对象列表
).
参数
-name <string[]>
指定需要启动的服务名称
.
此参数可以在命令行忽略
.
你既可以使用
"-Name",
也可以使用其别名
"-ServiceName",
甚至忽略此参数名
.
强制参数
?
|
true
|
参数位置
?
|
1
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据值
,
根据属性名
)
|
允许通配符扩展
?
|
true
|
-include <string[]>
只将指定的服务启动
.
此参数值用于限定
Path
参数
.
输入一个路径元素或模式
,
例如
"s*"(
此参数允许通配符
)
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
true
|
-exclude <string[]>
忽略指定的服务
.
此参数值用于限定
Path
参数
.
输入一个路径元素或模式
,
例如
"s*"(
此参数允许通配符
)
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
true
|
-passthru <SwitchParameter>
输出此命令创建的对象到管道中
.
默认情况下
,
此命令不会将对象输出到管道
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
False
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-displayName <string[]>
指定需要被启动的服务名称
,
此参数接受通配符
.
强制参数
?
|
true
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
true
|
-inputObject <ServiceController[]>
启动通过
ServiceController
对象表示的服务
.
输入一个包含对象的变量
,
或者一个能够产生对象的命令或表达式
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据值
)
|
允许通配符扩展
?
|
false
|
-whatIf
描述执行此命令将会发生的现象
,
不会真正执行此命令
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-confirm
执行命令前提示你进行确认
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
<
公共参数
>
此命令支持公共参数
: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable.
更多信息
,
输入
, "get-help about_commonparameters".
输入类型
Object
注意
更多信息
,
输入
"Get-Help Start-Service -detailed".
需要技术信息
,
输入
"Get-Help Start-Service -full".
如果需要为该命令提供多个参数
,
请使用逗号进行分隔
.
例如
, "<parameter-name> <value1>, <value2>".
你可以使用
Start-Service
内建别名
"sasv".
需要更多信息
,
查看
About_Alias.
Start-Service
只有在当前用户有权限时才能控制服务
.
如果命令没有正常工作
,
可能是您没有执行此操作的必要权限
.
要查找您系统上服务的服务名称和显示名称
,
输入命令
"get-service".
服务名称显示在列名为
"Name"
的列中
,
显示名称显示在列名为
"DisplayName"
的列中
.
你只能启动那些启动类型为
"
手动
"
活动
"
自动
"
的服务
,
启动类型为
"
禁止
"
的服务是无法被启动的
.
如果
Start-Service
执行失败
,
并提示信息
"Cannot start service <service-name> on computer",
可以使用
Get-WmiObject
命令查看该服务的启动类型
,
如果必要可以使用
Set-Service
命令改变该服务的启动类型
.
一些服务
,
例如
Performance Logs and Alerts (sysmonlog),
如果没有什么可以做的
,
将会自动停止
.
当
Windows PowerShell
启动一个几乎同时停止自己的服务
(Performance Logs and Alerts
属于此类
),
将会显示信息
: "Service <display-name> start failed."
例
1
C:/PS>start-service -name eventlog
此命令启动本地计算机的
EventLog
服务
.
此处参数
Name
通过服务名称来确定操作的服务
.
例
2
C:/PS>start-service -displayname *remote* -whatif
此命令将会解释如果你启动服务显示名称中包含
"remote"
字符串的所有服务
,
将会发生的事情
.
此处使用参数
DisplayName
通过显示名称
,
而不是服务名称来确定操作的服务
,
参数
-whatif
简单解释将会发生的操作
,
而不是真正执行这些操作
.
例
3
C:/PS>$s = get-service wmi
C:/PS>start-service -InputObject $s -passthru | format-list >> services.txt
此命令将会启动计算机上的
WMI
服务
,
并添加操作记录到文件
services.txt
末尾
.
第一条命令
Get-Service
cmdlet
取得一个表示
WMI
服务的对象
,
并将其存储到变量
$s
中
.
第二个命令使用
Start-Service cmdlet
来启动
WMI
服务
.
它通过参数
InputObject
将含有
WMI
服务对象的变量
$s
传递给
Start-Service.
接下俩
,
通过指定参数
Passthru
创建一个启动的服务对象
.
如果不指定此参数
, Start-Service
将不会产生任何输出
.
管道运算符
(|)
传递由
Start-Service
创建的对象给
Format-List
cmdlet,
此命令将对象格式化为属性的列表
.
追加重定向运算符
(>>)
将输出重定向到文件
services.txt,
将信息添加在该文件的末尾
.
例
4
接下来的例子将会介绍如何启动一个启动类型为
"
禁止
"
的服务
.
第一个命令
,
通过使用
Start-Service cmdlet
来启动
Telnet
服务
(tlntsvr),
执行失败
.
C:/PS>start-service tlntsvr
Start-Service : Service 'Telnet (TlntSvr)' cannot be started due to the followng error: Cannot start service TlntSvr on computer '.'.
At line:1 char:14
+ start-service <<<< tlntsvr
第二个命令
Get-WmiObject
cmdlet
取得
Tlntsvr
服务
.
此命令将会取得包含了启动类型属性的对象
(
启动类型存放在
"StartMode"
中
.).
显示的结果揭示了
Tlntsvr
服务的启动类型是
"
禁止
".
C:/PS> get-wmiobject win32_service | where {$_.Name -eq "tlntsvr"}
ExitCode : 0
Name : TlntSvr
ProcessId : 0
StartMode : Disabled
State : Stopped
Status: OK
接下来的命令使用
Set-Service
cmdlet
改变
Tlntsvr
服务的启动类型为
"
手动
".
C:/PS> set-service tlntsvr -startuptype manual
现在
,
我们重新执行
Start-Service
命令
.
此次
,
命令将会成功执行
.
C:/PS> start-service tlntsvr
要验证命令是否成功
,
可以执行
Get-Service.
相关链接
Get-Service
Suspend-Service
Stop-Service
Restart-Service
Resume-Service
Set-Service
New-Service