您在屏幕上看到的正在运行的应用程序只是 Windows 中发生的情况的一小部分。从管理设备驱动程序到确保安全性,一堆后台进程维护着 Windows PC 的正常运行。
对于任何管理多台计算机的系统管理员来说,能够查看这些关键服务的状态非常重要。任务管理器方法对此来说太慢,并且您无法使用脚本将其自动化。
解决方案?命令行工具。使用命令提示符或 电源外壳 ,您可以快速了解系统上运行的可操作 Microsoft 服务,帮助您快速诊断任何问题。
在命令提示符中列出 Windows 服务
尽管不如 Windows PowerShell 灵活或强大,命令提示符 对于系统管理员来说仍然是一个出色的工具。您可以使用queryex 命令获取活动和禁用服务的状态,然后使用使用taskkill命令 结束讨厌的进程。
sc queryex type=service state=all
sc queryex 类型=服务状态=全部 |查找 /i“SERVICE_NAME:”
sc queryex type=service state=inactive
sc查询DeviceInstall
在 PowerShell 中列出 Windows 服务
.电源外壳 旨在成为现代 Windows 的专用命令行 shell。因此,它可以通过命令访问几乎所有操作系统组件,Windows 服务也不例外。
PowerShell 的优点是您可以轻松地实现自动化。所有 PowerShell 命令都可以编译为复杂的脚本,使您可以轻松地在多台 PC 上设置系统管理任务。
获取服务 |输出文件“C:\logs\All_Services.txt”
获取服务 CryptSvc、COMSysApp
获取服务 | Where-Object {$_.Status -EQ“正在运行”}
检查服务依赖关系
任何复杂的流程都会分为多个相互依赖的服务。这就是为什么仅仅获取特定服务的状态通常是不够的。您还需要检查该服务所依赖的服务的状态。
获取服务-名称 CryptSvc –RequiredServices
获取服务-名称 CryptSvc -DependentServices
这两个标志对于编写自动启动或停止 Windows 服务的脚本至关重要,因为它们为您提供了一种跟踪与受影响服务连接的所有服务的方法。
列出远程计算机上的 Windows 服务
PowerShell 方法不仅限于本地计算机。您也可以使用具有与上述相同语法的 Get-Service cmdlet 来查询远程 PC 的进程。只需在末尾附加 -ComputerName 标志即可指定要从哪台远程计算机检索信息。
这是一个例子:
获取服务 CryptSvc -ComputerName Workstation7
在 PowerShell 中管理 Windows 服务
获取服务状态并不是您在 Windows PowerShell 中可以做的唯一事情。作为一个成熟的脚本环境,它提供了所有 GUI 选项的脚本替代方案。
Powershell cmdlet 可以停止、启动、重新启动,甚至修改服务。与自动化的 Get-Service 命令配合使用,可以编写 PowerShell 脚本来完全自动化日常系统管理任务。
停止服务-Name Spooler
启动服务-Name Spooler
重新启动服务-Name Spooler
Set-Service ‘Spooler’ -StartupType 已禁用
列出 Windows 服务的最佳方式是什么?
无论您运行的是 Windows 10 还是 Windows Server,查看所有 Windows 服务的列表都会很方便。您可以诊断关键系统功能的问题或停止不必要的微软服务 以提高性能。
为此,PowerShell 是最佳选择。虽然您可以在命令提示符中获取服务列表,但 PowerShell 提供的附加功能更有用。
您可以使用 PowerShell cmdlet 获取 Windows 进程的服务状态,并按其状态或其他参数进行过滤。还可以轻松确定依赖的服务并根据需要启动或停止它们。
.