据我所知,在所有当前的 Windows 版本中,当您想要运行一项服务时,您的能力都非常有限。
我通常通过在“开始”->“运行”框中键入“services.msc”来启动服务,在大多数版本的 Windows 上,这都是可行的。我知道如何单击 Windows 服务的 MMC 视图中的“名称”列。如果您知道服务名称的前几个字符是什么,通常可以按名称排序,然后键入前缀以向下滚动列表(例如,查找 Windows 搜索)。
我觉得这个功能很弱,所以我花了一些时间在互联网上搜索可以更好地管理服务的工具。通常我会有一个我知道“fooWare”可能是关键字的关键字,我需要找到(通常名字不好的)服务并启动和停止它。这通常太难了。
我能做的最好的就是从命令行输入“NET SERVICES”,然后可能在其中添加一个 grep,但这并不能列出所有服务,只能列出其中的几个。
而且 Win7 中的 MMC 管理单元现在有一个导出列表按钮,导出到 csv 文本文件功能,我时常使用它来导出然后搜索。我想过编写自己的工具。我希望有一个更好的“服务管理器”实用程序供系统管理员使用。我希望右上角有一个搜索框,就像 Win7 和 Vista 中的“添加-删除-程序”对话框中的搜索功能一样。
是否存在这样的服务实用程序?
答案1
sc.exe
在命令提示符或*-service
PowerShell 工具集上。
在命令行上,sc
可以进行一些服务调试,您可以将其与输出到文本文件或乱搞结合起来find
。但实际上,您现在应该使用 PowerShell,因此(Get-Service
以及Start-Service
、、等)结合 PowerShell 提供的大量格式化和解析工具是您最好的选择。Restart Service
Set-Service
以下是 PowerShell 中的一个示例:
$t = '*mana*';Get-Service | Where {($_.Name -like "$t" -or $_.DisplayName -like "$t") -and $_.StartType -ne "Disabled"}
它根据名称和显示名称进行过滤并忽略已禁用的服务。
Find-Service.ps1
您可以将其放入具有单个参数的脚本中。
param(
[string]$term
)
$term = "*" + $term + "*"
Get-Service | Where-Object {($_.Name -like "$term" -or $_.DisplayName -like "$term") -and $_.StartType -ne "Disabled"}
答案2
xnet.exe 可从几个位置获取(例如http://www.netware.se/en/downloads/) 可以列出所有正在运行的服务 - 然后您可以使用其他内容来搜索输出。Handlily xnet 还会报告服务的简称,可用于管理它。
答案3
HKLM\System\CurrentControlSet\Services 可以给你一个很多您可能需要的信息。请谨慎行事。
答案4
我也有同样的疑问 :-(
即使在 Windows 10 中,Windows 服务的 MMC 视图中仍然没有搜索功能。
无论如何,我在以下链接中找到了此实用程序 Serviwin:
http://www.nirsoft.net/utils/serviwin.html
它显示有关服务的所有信息,并且还具有搜索功能。我希望这会有所帮助,也希望 Microsoft 在 Windows 服务的 MMC 视图中实现搜索框。
我还发现了这个实用程序 ServiceBouncer,它确实非常好。