所有,
我试图阻止我们创build的依赖于另一个服务的Windows服务。 我只想停止使用batch file的服务,例如在远程机器上运行服务的sc命令。
我已经尝试停止服务的依赖顺序(最不依赖的第一),但它并没有停止服务。
例如,Service1依赖于在服务控制台中的服务设置中configuration的Service2。 我在Windows 7 PC上运行脚本,服务器运行Windows Server 2003。
什么是从Windows上的文件中删除前N个字节的最有效的方法?
将X文件从一个文件夹移动到Powershell中的另一个文件夹
以下行在我创build的noddybatch file中:
sc \SERVER stop "Service1" sc \SERVER stop "Service2"
命令控制台中的输出是:
D:Test>sc \SERVER stop "Service2" [SC] ControlService Failed 1051: A stop control has been sent to a service that other running services are dependent on.
服务Service2不会停止。 Service1停止罚款。
有任何想法吗?
谢谢,
Andez
在Linux中对多个文件进行sorting
Python – 如何将文件从Windows共享复制到Linux共享
在XP中使用TCL访问共享文件夹,而不映射到驱动器
以编程方式确定video文件格式?
如何更改Visual Studio 2012(C ++)中的默认.exe图标
“净停止”命令有一个没有评论的参数。 这个参数是/是,并且会自动停止所有的依赖服务
所以要停止一个有或没有依赖关系的服务,只需键入
net stop spooler /yes
您可以通过运行sc qc <service>来检查服务所依赖的依赖关系
为了编写脚本并检索依赖关系,可以将它放在for循环中
例:
@echo off setlocal enabledelayedexpansion set service=winmgmt set server=server for /f "Tokens=2 Delims=:" %%i in ('sc \%server% qc %service% ^| find /i "DEPENDENCIES"') do ( set depservice=%%i rem removes spaces set depservice=!depservice: =! sc \%server% stop "!depservice!" rem extra: accumulate all dependencies to one variable set alldeps=!alldeps!,!depservice! rem remove first "," in variable set alldeps=!alldeps=~2! ) sc \%server% stop "%service%" && echo Both %service% and !alldeps! were stopped || echo Something went wrong stopping %service% exit /b
只有当你想停止的服务只有一个依赖时,上述才会起作用。
对于遇到类似问题的任何人:
请记住, SC命令是异步的 。 以下可能会有所帮助:
停止批处理文件,直到服务停止完成?
Niklas批处理文件不适用于我。
看来在Windows server 2008 R2上,qc命令显示了该服务依赖的服务。 在这一点上他们是不相关的,你可以停止服务,而不会造成他们的生活波动。
你真正想要的是依赖于被杀的服务的服务。 你可以用EnumDepend命令将这些命令转换为sc.exe。
不幸的是,输出语法有很大的不同,所以你需要保留上面显示的逻辑,但是替换解析。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。