Start-Service 帮助信息

本文介绍如何使用Start-Service命令启动Windows服务,包括通过服务名称、显示名称和服务对象启动服务的方法,并提供了多个实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
如下说明是翻译: 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 cmdletWindows服务控制器(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
 
 
 
<think>好的,用户遇到了在PowerShell中使用Start-Service启动wuauserv(Windows Update服务)失败的问题。我需要逐步分析可能的原因并提供解决方案。首先,根据引用[1]和[2],用户可能已经尝试过基本的启动和重启命令,但失败了。接下来要考虑服务依赖的问题,因为Windows Update服务依赖于其他服务,如BITS和Cryptographic Services。如果这些依赖服务未运行,启动wuauserv会失败。需要指导用户使用Get-Service检查这些服务的状态,并手动启动它们。 另外,系统文件损坏也可能导致服务无法启动。用户可能需要运行系统文件检查工具sfc /scannow和DISM命令来修复系统文件。此外,Windows Update相关的组件损坏,可以尝试清除SoftwareDistribution文件夹,因为该文件夹存储更新数据,损坏的文件可能影响服务启动。 权限问题也可能导致启动失败。用户可能需要以管理员身份运行PowerShell,或者检查安全策略是否阻止了服务启动。此外,查看事件查看器的日志可以提供具体的错误信息帮助进一步诊断问题。 最后,如果所有方法都无效,重置Windows Update组件或执行系统修复安装可能是最后的解决方案。需要提醒用户在操作前备份重要数据,以防万一。</think>### 解决 PowerShell 中启动 Windows Update 服务失败的步骤 #### 1. **检查服务依赖项** Windows Update 服务(`wuauserv`)依赖其他服务(如 **Background Intelligent Transfer Service (BITS)** 和 **Cryptographic Services**)。若依赖服务未运行,会导致启动失败。 ```powershell Get-Service -Name BITS, CryptSvc, wuauserv | Format-Table -AutoSize ``` - 如果依赖服务状态为 **Stopped**,手动启动它们: ```powershell Start-Service -Name BITS Start-Service -Name CryptSvc ``` #### 2. **强制重启服务组合** 通过停止服务并删除临时文件解决潜在的文件锁冲突: ```powershell Stop-Service -Name wuauserv -Force Stop-Service -Name BITS -Force # 清除缓存文件 Remove-Item -Path "C:\Windows\SoftwareDistribution\*" -Recurse -Force # 重新启动服务 Start-Service -Name BITS Start-Service -Name wuauserv ``` #### 3. **修复系统文件** 系统文件损坏可能导致服务异常: ```powershell sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth ``` 完成后重启系统,再次尝试启动服务[^1][^2]。 #### 4. **检查权限问题** - 以 **管理员身份运行 PowerShell**(右键点击 PowerShell 图标,选择“以管理员身份运行”)。 - 验证服务权限: ```powershell sc.exe sdshow wuauserv ``` 若权限异常,可使用安全策略工具(`secpol.msc`)调整服务权限。 #### 5. **查看事件日志定位错误** 通过事件查看器获取详细错误信息: ```powershell Get-EventLog -LogName System -Source "Service Control Manager" -Newest 10 | Where-Object {$_.Message -like "*wuauserv*"} ``` #### 6. **重置 Windows Update 组件** 若上述方法无效,可尝试完全重置 Windows Update: ```powershell # 停止相关服务 Stop-Service -Name wuauserv,BITS,msiserver -Force # 重命名软件分发文件夹 Rename-Item -Path "C:\Windows\SoftwareDistribution" -NewName "SoftwareDistribution.old" # 重新注册 DLL 文件 regsvr32.exe /s wuapi.dll regsvr32.exe /s wups.dll # 重启服务 Start-Service -Name BITS Start-Service -Name wuauserv ``` #### 7. **系统修复安装** 若问题持续,考虑通过 Windows 安装介质执行 **“修复安装”**(保留用户数据重装系统)。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值