【发布时间】:2020-04-09 00:28:18
【问题描述】:
如何在几个 Powershell 单行中实现以下目标(一个启动,一个停止)?
我想在 Powershell 中启动服务 MyService 并启动 MyService 必需 的所有其他服务(即 >MyService 取决于)尚未启动。然后我希望能够停止 MyService 以及我最初使用 MyService 启动的所有服务,但不是所有 other 上的 服务MyService 依赖于在我启动 MyService 时已经启动。
澄清: 如果 MyService 需要 Service1、Service2 和 Service3 以及 Service3 也是 必需 UnrelatedService 并且已经为 UnrelatedService 运行,那么我不需要/不想启动 Service3 以启动 MyService。 也我不想在停止 MyService 时停止 Service3,因为那样 UnrelatedService 会失败。我确实想在我停止 MyService 时停止 Service1 和 Service2,因为它们只是必需的 em> 由 MyService 提供。
其次,我想递归地执行此操作,这样如果 Service1 和 Service2 有其他 RequiredServices(回想 Service3 已经在运行,因此 Service3 Depends) 所依赖的服务也是如此,然后我还想启动 Service1所依赖的其他服务> 和 Service2 Depend 并且尚未启动。
成功的结果是 [所有在其后运行的服务] 我停止 MyService 的列表与的列表相同[之前运行的所有服务] 我启动了 MyService 以及它所依赖的那些。
我的尝试
Get-Service MyService |
Select -expand RequiredServices |
Start-Service
Start-Service : 服务“我的完整服务名称 (myservice)”不能 由于以下错误而启动:无法启动服务 MyService on 电脑 '。'。在 line:1 char:57 + Get-Service MyService |选择 -扩大所需服务 | Start-Service + + CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [启动服务],ServiceCommandException + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand
【问题讨论】:
-
还有什么问题?您可以(重新)阅读帮助主题 How do I ask a good question? 和 How to create a Minimal, Reproducible Example
-
@Olaf “如何在 Powershell 中执行此操作?” - 抱歉,如果这不明显。我对 Powershell 很陌生,所以我什至不知道如何创建一个示例,因此需要详细而准确的描述以及所需的结果......
-
接下来的问题通常是:到目前为止,您尝试了什么?请分享您的代码并解释您遇到的问题或无法按预期工作的地方。 ;-)
-
PS C:\Users\username> Get-Service MyService | Select -expand RequiredServices | Start-Service Start-Service : Service 'My Full Service Name (myservice)' cannot be started due to the following error: Cannot start service MyService on computer '.'. At line:1 char:57 + Get-Service MyService | Select -expand RequiredServices | Start-Service + + CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand -
MyService 显然是一个占位符...
标签: powershell recursion service