SC(Service Control)、Get-Service、Servy、Winsw、NSSM、AlwaysUp 和 FireDaemon Pro 都是用于在 Windows 操作系统中将普通应用程序作为服务运行的工具。它们各自有不同的功能、特点和使用场景。以下是这些工具的对比表格:
使用 SC 控制服务 - Win32 apps | Microsoft Learn
sc.exe create | Microsoft Learn
Get-Service (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn
管理服务 - PowerShell | Microsoft Learn
NSSM - the Non-Sucking Service Manager
GitHub - xxnuo/Nssm-Chinese: Nssm_ ch - Windows 系统服务管理器 提供GUI管理Win系统服务的添加、修改、删除
WinSW-Windows (WinSW) · GitHub
GitHub - always-up-app/always-up-app
Download AlwaysUp | Free 30 Day Trial
Servy - Turn Any App into a Native Windows Service


开发一个 Windows Services 服务全方位实时监测健康状态系统,可以帮助我们监控系统服务的运行状态、响应时间、资源消耗等,及时发现并处理异常。以下是一个开发文档的大纲,涵盖系统需求、设计方案、功能实现及测试等各个方面。
Windows Services 服务全方位实时监测健康状态系统开发文档
1. 项目概述
本系统旨在监控 Windows 服务的运行健康状态,包括服务是否正常运行、资源消耗(如 CPU、内存)、服务响应时间等。通过实时监控,可以在服务出现故障或异常时及时报警,确保系统的稳定性和可靠性。
2. 系统需求
2.1 功能需求
- 服务状态监控:实时监测 Windows 服务的运行状态,识别是否有停止、崩溃或挂起的服务。
- 资源消耗监控:监控每个服务的 CPU、内存等资源消耗,防止资源泄漏或过度消耗。
- 响应时间监控:定期检查服务的响应时间,超过预设阈值时触发警报。
- 报警机制:在服务停止或资源消耗异常时,自动触发警报(如邮件、短信、Web通知等)。
- 日志记录:记录服务的健康状态变化和监控结果,为故障排查提供日志支持。
- 可视化面板:通过图形界面展示各服务的健康状态、资源消耗等数据。
2.2 性能需求
- 实时性:监控系统必须具备高实时性,能够在服务状态变化时迅速响应。
- 可靠性:系统必须稳定运行,能够长时间监控多服务,不受系统负载影响。
- 扩展性:系统能够支持新增服务监控,支持多台机器或分布式系统的扩展。
2.3 技术需求
- 开发语言:使用 C# 或 Python 开发服务监控系统,结合 Windows Management Instrumentation (WMI)、Performance Counters 或 Windows API 进行监控。
- 数据库:使用 SQL Server 或 MySQL 存储历史数据,记录服务的运行状态、资源消耗等信息。
- 界面技术:使用 WinForms、WPF(Windows Presentation Foundation)或 Web 界面进行展示。
- 通知机制:集成邮件发送、Web API 或第三方服务(如 Slack、Twilio)进行报警。
3. 系统设计
3.1 系统架构
本系统采用客户端-服务器架构,客户端监控单个服务或单台机器的健康状态,数据实时上传至服务器进行汇总分析,最终呈现给管理员或运维人员。
- 客户端:负责监控指定服务的健康状态,收集数据,并通过网络将数据上传至服务器。
- 服务器:负责处理客户端上传的数据,分析健康状态,触发报警,并将数据展示在可视化面板。
- 数据库:存储历史数据,支持快速查询与分析。
3.2 服务监控模块
服务监控模块的核心功能是通过 Windows API 或 WMI 接口获取服务的运行状态。可以通过以下方法进行监控:
- 获取服务状态:使用
sc query命令或 WMI 查询服务状态(Win32_Service)。 - 获取资源消耗:通过 Performance Counters(性能计数器)获取每个服务的 CPU、内存使用情况。
- 响应时间检测:定期通过 HTTP 请求或自定义的 TCP 服务请求检测服务的响应时间。
3.3 数据存储模块
使用关系型数据库(如 SQL Server 或 MySQL)来存储服务状态、资源消耗、响应时间等信息,数据表设计如下:
- Service_Status 表:记录服务的状态(启动、停止、崩溃等)、时间戳等。
- Service_Resource_Usage 表:记录服务的 CPU 和内存使用情况、时间戳等。
- Service_Response_Time 表:记录服务的响应时间、时间戳等。
3.4 可视化模块
提供一个图形化界面或 Web 面板,实时展示服务健康状态、资源消耗和响应时间等信息。界面应包括以下几个部分:
- 服务状态概览:显示所有监控服务的当前状态,异常服务以红色标记。
- 资源消耗:使用图表展示各服务的 CPU 和内存使用情况。
- 响应时间:展示服务的平均响应时间,超过阈值时高亮显示。
- 报警记录:列出所有触发的报警事件。
3.5 报警机制
系统在发现异常时,通过以下方式进行报警:
- 邮件报警:通过 SMTP 发送邮件通知管理员。
- Web 推送:通过 WebSocket 或第三方 API(如 Slack)推送报警信息。
- 短信通知:使用 Twilio 等短信服务发送短信。
4. 实现步骤
4.1 环境搭建
- 安装并配置开发工具,如 Visual Studio、Python 开发环境等。
- 安装并配置数据库,如 SQL Server。
- 配置邮件发送服务或短信通知服务(如 Twilio)。
4.2 服务监控实现
- 使用
sc query或 WMI 接口获取服务状态信息。 - 使用 Performance Counters API 获取服务的 CPU 和内存使用情况。
- 实现自定义脚本或代理检测服务的响应时间。
4.3 数据存储和分析
- 创建数据库表格以存储监控数据。
- 定期将监控数据上传至数据库,并分析服务的健康状况。
- 设置阈值,超过阈值触发报警。
4.4 可视化面板实现
- 使用 WinForms、WPF 或 Web 技术(如 React、Angular)展示数据。
- 图形化显示每个服务的状态、资源消耗和响应时间。
- 提供实时刷新功能,确保界面始终展示最新的状态。
4.5 报警系统实现
- 配置邮件、短信和 Web 推送报警。
- 在监控脚本中加入报警逻辑,检测到异常时触发报警。
4.6 测试和调试
- 测试服务监控的准确性,确保能够正确检测服务状态、资源消耗等信息。
- 测试报警机制,确保当服务出现异常时能够及时通知管理员。
5. 测试与部署
5.1 测试方案
- 单元测试:测试每个模块的基本功能,确保监控、数据存储、报警等功能正常工作。
- 集成测试:测试系统各个模块间的协作,确保数据流通畅无误。
- 压力测试:模拟高负载情况下,测试系统的性能和稳定性。
- 用户验收测试(UAT):由最终用户进行测试,确认系统是否满足业务需求。
5.2 部署方案
- 部署客户端应用到目标机器上,配置监控的服务。
- 部署数据库并配置备份策略。
- 部署服务器应用,配置报警和可视化面板。
- 确保系统的日志和监控功能能够持久运行,不会受到重启或故障的影响。
此文档概述了 Windows Services 服务全方位实时监测健康状态系统的开发流程、架构设计和实现步骤。通过服务状态监控、资源消耗监控、响应时间监控以及报警机制,本系统可以有效地帮助运维人员实时掌握系统服务的健康状况,并在服务异常时及时响应。
该系统能够提升系统稳定性,减少故障发生时间,并为故障排查提供必要的数据支持。
SC 命令在 Windows 中可以用于管理服务的不同启动类型、保护模式以及控制服务的启动行为。根据你的需求,以下是实现服务保护、实时自动启动、退出自动启动、以及闪退强制启动的相关操作:
1. 设置服务为自动启动(Automatic)
自动启动意味着服务会在计算机启动时自动启动。
sc config <ServiceName> start= auto
- 示例:设置
MyService为自动启动:bashsc config MyService start= auto
2. 设置服务为手动启动(Manual)
手动启动意味着服务只有在用户或其他进程请求时才会启动。
sc config <ServiceName> start= demand
- 示例:设置
MyService为手动启动:bashsc config MyService start= demand
3. 设置服务为禁用(Disabled)
禁用服务意味着该服务无法启动。
sc config <ServiceName> start= disabled
- 示例:禁用
MyService服务:bashsc config MyService start= disabled
4. 设置服务为实时保护(实时监控)
Windows 服务没有直接的命令来启用“实时保护”功能,通常实时保护是由特定的反病毒或安全软件提供的。不过,你可以通过配置服务的恢复操作来增强服务的容错性。例如设置服务在失败后自动重启。
sc failure <ServiceName> reset= 0 actions= restart/5000
- 示例:设置
MyService在失败后 5 秒自动重启:bashsc failure MyService reset= 0 actions= restart/5000
5. 设置服务为强制启动(强制启动闪退服务)
强制启动服务的操作通常需要管理员权限,且可能会在服务崩溃时自动重启服务。可以通过设置失败时的行为来强制服务重启。
sc config <ServiceName> start= auto
sc failure <ServiceName> actions= restart/5000
- 示例:强制重启
MyService服务:bashsc config MyService start= auto sc failure MyService actions= restart/5000
6. 退出自动启动(取消自动启动)
如果你希望服务退出自动启动并恢复为手动启动,可以使用以下命令:
sc config <ServiceName> start= demand
- 示例:将
MyService设置为手动启动,取消自动启动:bashsc config MyService start= demand
7. 设置服务为保护模式(Service Protection)
Windows 提供了设置服务安全标志和服务帐户权限的功能来增强服务的保护。如果你需要为服务设置额外的安全控制,可以通过 sc sdset 命令来修改服务的安全描述符。例如:
sc sdset <ServiceName> D:(A;;FA;;;SY)
- 示例:为
MyService设置保护模式(安全描述符):bashsc sdset MyService D:(A;;FA;;;SY)
以上命令帮助你配置服务的启动行为、保护机制及失败重启等功能。具体配置取决于你服务的需要和操作系统的安全设置。如果你有更具体的服务名称和需求,可以根据这些命令进行调整。

sc queryex、wevtutil、fltmc、lodctr、sc qc、sc query、sc description 和 sc failureflag 命令的详细说明,这些命令通常用于服务管理、事件日志管理、过滤器驱动程序管理等任务。
1. sc queryex
sc queryex 命令用于查询服务的详细信息,除了 sc query 提供的基本信息外,还能显示额外的状态信息,尤其是有关服务的扩展状态。
常见用法:
sc queryex <服务名>
示例:
sc queryex wuauserv
该命令返回 Windows 更新服务 的详细信息,包括服务的状态、PID、启动类型等。
2. wevtutil
wevtutil 是用于管理事件日志和事件日志文件的命令行工具。它可以用来导出、清除、查询和配置日志文件。
常见用法:
-
查看事件日志:
bashwevtutil qe Application /f:text /c:5查询 Application 日志中的最新 5 条事件,输出格式为文本。
-
导出事件日志:
bashwevtutil epl Application C:\path\to\exportedlog.evtx将 Application 日志导出到指定路径。
-
清除事件日志:
bashwevtutil cl Application清除 Application 日志。
3. fltmc
fltmc 是用于管理和显示文件系统过滤驱动程序(FSD)信息的工具。它可以列出当前加载的过滤器驱动程序,查看它们的状态,或卸载过滤器。
常见用法:
-
列出所有过滤器:
bashfltmc instances -
查看已加载的过滤器驱动:
bashfltmc drivers -
卸载过滤器:
bashfltmc detach <过滤器名称>
4. lodctr
lodctr 是一个用于加载或卸载性能计数器的命令行工具。它可以用于将自定义的性能计数器加载到系统中。
常见用法:
-
加载性能计数器:
bashlodctr /r重新加载计数器设置并刷新注册表。
-
卸载性能计数器:
bashlodctr /u -
显示当前的计数器:
bashlodctr /?
5. sc qc
sc qc 命令用于查询服务的配置(包括服务二进制路径、启动类型、依赖项等)。它显示关于指定服务的详细配置。
常见用法:
sc qc <服务名>
示例:
sc qc wuauserv
该命令显示 Windows 更新服务 的配置,包括二进制路径、启动类型、依赖关系等信息。
6. sc query
sc query 命令用于查询服务的状态,它提供服务是否正在运行、停止、挂起等状态。
常见用法:
sc query <服务名>
示例:
sc query wuauserv
该命令显示 Windows 更新服务 的状态(例如正在运行、停止、暂停等)。
7. sc description
sc description 命令用于查看或设置服务的描述字段。服务的描述通常会出现在服务管理器中,帮助管理员理解该服务的作用。
常见用法:
sc description <服务名> <描述>
-
设置服务的描述:
bashsc description wuauserv "Windows Update Service" -
获取服务描述:
bashsc description wuauserv
8. sc failureflag
sc failureflag 命令用于设置服务的失败标志。它定义了当服务失败时,系统应如何响应。
常见用法:
sc failureflag <服务名> <标志值>
标志值可以包括:
0:关闭失败响应1:启用失败响应
示例:
sc failureflag wuauserv 1
该命令启用 Windows 更新服务 的失败响应。
汇总表
| 命令/工具 | 功能描述 | 示例 |
|---|---|---|
sc queryex |
查询服务的详细信息,包括扩展状态 | sc queryex wuauserv |
wevtutil |
管理和查询事件日志 | wevtutil qe Application /f:text /c:5 |
fltmc |
管理和查看文件系统过滤器驱动程序 | fltmc instances |
lodctr |
加载和卸载性能计数器 | lodctr /r |
sc qc |
查询服务的配置,包括二进制路径、启动类型等 | sc qc wuauserv |
sc query |
查询服务的当前状态 | sc query wuauserv |
sc description |
查看或设置服务的描述字段 | sc description wuauserv "Windows Update Service" |
sc failureflag |
设置服务的失败标志,定义服务失败时的响应行为 | sc failureflag wuauserv 1 |
这些命令提供了对 Windows 服务、事件日志、过滤器驱动程序等方面的深入管理和控制,可以帮助管理员更高效地进行系统维护、监控和故障排除。
SC命令、NET命令、PowerShell cmdlet 和 installutil.exe 的汇总说明
这些命令和工具都与 Windows 服务的安装、启动、停止和管理相关,下面是它们的概述和常见用法:
1. SC命令 (Service Control)
SC 是一个用于与 Windows 服务进行交互的命令行工具。它可以用于创建、启动、停止、查询和配置服务。
- 常见命令:
sc start <服务名称>:启动指定的服务。sc stop <服务名称>:停止指定的服务。sc query <服务名称>:查询服务的当前状态。sc create <服务名称> binPath= <服务路径>:创建一个新服务。sc delete <服务名称>:删除指定的服务。sc config <服务名称> start= <启动类型>:修改服务的启动类型(如auto、demand等)。
例子:
sc start MyService
sc stop MyService
sc create MyService binPath= "C:\path\to\myservice.exe"
2. NET命令
NET 命令是 Windows 中一个多功能的命令,常用于网络操作和服务管理。
- 常见命令:
net start <服务名称>:启动指定的服务。net stop <服务名称>:停止指定的服务。net pause <服务名称>:暂停指定的服务。net continue <服务名称>:恢复暂停的服务。net help:获取帮助信息。
例子:
net start MyService
net stop MyService
3. PowerShell cmdlet
PowerShell 提供了多种 cmdlet 来管理 Windows 服务。以下是与服务相关的一些常用 cmdlet:
Get-Service:获取所有服务的状态,或者获取指定服务的状态。Start-Service:启动指定的服务。Stop-Service:停止指定的服务。Restart-Service:重启指定的服务。Set-Service:配置服务的启动类型或其他属性。
例子:
Get-Service -Name "MyService"
Start-Service -Name "MyService"
Stop-Service -Name "MyService"
Restart-Service -Name "MyService"
Set-Service -Name "MyService" -StartupType Automatic
4. installutil.exe
installutil.exe 是一个用于安装和卸载 .NET Framework 服务的工具。它可以用于部署 Windows 服务应用程序。
- 常见用法:
- 安装服务:
installutil <服务路径> - 卸载服务:
installutil /u <服务路径>
- 安装服务:
例子:
installutil C:\path\to\MyService.exe
installutil /u C:\path\to\MyService.exe
| 命令/工具 | 功能描述 | 示例 |
|---|---|---|
| SC命令 | 用于创建、启动、停止、删除服务 | sc start MyService sc create MyService binPath="C:\path\to\myservice.exe" |
| NET命令 | 用于管理服务,类似于 SC 命令 | net start MyService net stop MyService |
| PowerShell cmdlet | 用于 PowerShell 中的服务管理 | Start-Service -Name "MyService" Restart-Service -Name "MyService" |
| installutil.exe | 用于安装和卸载 .NET 服务 | installutil C:\path\to\MyService.exe installutil /u C:\path\to\MyService.exe |
这些工具和命令适用于不同的场景,可以根据需求选择使用。
tasklist、taskkill、wmic service、netsh winsock reset 和 psservice 命令汇总说明
这些命令和工具主要用于管理和诊断 Windows 系统中的进程和服务,下面是它们的详细说明和常见用法:
1. tasklist 命令
tasklist 命令用于显示当前正在运行的所有进程的列表,包括每个进程的 ID 和内存使用情况等。
- 常见用法:
tasklist:列出所有正在运行的进程。tasklist /fi "imagename eq <进程名>":筛选指定进程的列表。tasklist /v:显示详细信息,包括进程使用的内存、CPU 时间等。tasklist /fo csv:以 CSV 格式输出。
例子:
tasklist
tasklist /fi "imagename eq notepad.exe"
tasklist /v
tasklist /fo csv
2. taskkill 命令
taskkill 命令用于终止一个或多个正在运行的进程。
- 常见用法:
taskkill /im <进程名>:通过进程名称终止指定进程。taskkill /pid <进程ID>:通过进程 ID 终止指定进程。taskkill /f /im <进程名>:强制终止指定进程。taskkill /t /im <进程名>:终止指定进程及其子进程。
例子:
taskkill /im notepad.exe
taskkill /pid 1234
taskkill /f /im notepad.exe
taskkill /t /im notepad.exe
3. wmic service 命令
wmic(Windows Management Instrumentation Command-line)命令提供了对 Windows 系统的管理接口,可以用于查询、启动、停止、配置和删除服务等。
- 常见用法:
wmic service list brief:列出所有服务的简要信息。wmic service where "name='<服务名>'" call start:启动指定服务。wmic service where "name='<服务名>'" call stop:停止指定服务。wmic service where "name='<服务名>'" call delete:删除指定服务。
例子:
wmic service list brief
wmic service where "name='wuauserv'" call start
wmic service where "name='wuauserv'" call stop
4. netsh winsock reset 命令
netsh winsock reset 命令用于重置 Windows Socket(Winsock)目录,解决与网络连接相关的问题,通常在遇到无法连接互联网时使用。
- 常见用法:
netsh winsock reset:重置 Winsock 目录。
例子:
netsh winsock reset
使用场景:
- 网络连接出现问题时,尤其是浏览器无法加载页面或其他网络应用无法正常工作时。
5. psservice 工具
psservice 是 Sysinternals Suite 中的一个工具,用于查看和管理 Windows 服务。它可以提供更详细的服务信息,类似于 sc 命令和 PowerShell cmdlet,但提供更强大的诊断功能。
- 常见用法:
psservice:列出所有服务。psservice <服务名>:查看指定服务的详细信息。psservice stop <服务名>:停止指定服务。psservice start <服务名>:启动指定服务。
例子:
psservice
psservice "wuauserv"
psservice stop "wuauserv"
psservice start "wuauserv"
| 命令/工具 | 功能描述 | 示例 |
|---|---|---|
| tasklist | 显示当前运行的进程列表,包括进程ID、内存使用情况等。 | tasklist tasklist /fi "imagename eq notepad.exe" |
| taskkill | 用于终止一个或多个进程。 | taskkill /im notepad.exe taskkill /f /im notepad.exe |
| wmic service | 用于查询、启动、停止和删除 Windows 服务。 | wmic service where "name='wuauserv'" call start |
| netsh winsock reset | 重置 Winsock 目录,修复网络连接问题。 | netsh winsock reset |
| psservice | 用于查看和管理 Windows 服务。 | psservice stop "wuauserv" psservice start "wuauserv" |
这些工具和命令适用于进程管理、服务管理、网络诊断等场景,帮助系统管理员和用户解决系统问题或进行日常维护。
wmic 与 PowerShell cmdlet Get-CimInstance 在服务管理中的应用
wmic 和 Get-CimInstance 都可以用于获取和管理 Windows 服务,但它们的使用方式和功能有所不同。下面是它们的概述和应用场景。
1. wmic 命令
wmic 是一个基于命令行的 Windows 管理工具,它通过 Windows Management Instrumentation (WMI) 提供对系统硬件、服务、进程等的访问和控制。通过 wmic,可以非常方便地查询和管理 Windows 服务。
- 常见用法:
- 查询服务:
wmic service list brief列出所有服务的简要信息。 - 查询特定服务:
wmic service where "name='<服务名>'" get Name, State, StartMode获取特定服务的状态、名称和启动模式。 - 启动服务:
wmic service where "name='<服务名>'" call start启动服务。 - 停止服务:
wmic service where "name='<服务名>'" call stop停止服务。 - 删除服务:
wmic service where "name='<服务名>'" call delete删除服务。
- 查询服务:
例子:
wmic service list brief
wmic service where "name='wuauserv'" get Name, State, StartMode
wmic service where "name='wuauserv'" call start
wmic service where "name='wuauserv'" call stop
优点:
- 适合通过命令行进行批量操作和管理。
- 可以查询服务的详细信息,如启动模式、状态等。
2. PowerShell cmdlet Get-CimInstance
Get-CimInstance 是 PowerShell 提供的一个命令,它用于获取 CIM (Common Information Model) 实例,可以用来获取系统的硬件信息、操作系统信息、服务信息等。它是通过 Windows Management Instrumentation (WMI) 或更现代的 CIM 提供对系统信息的访问。
- 常见用法:
- 查询所有服务:
Get-CimInstance -ClassName Win32_Service获取所有服务的详细信息。 - 查询特定服务:
Get-CimInstance -ClassName Win32_Service -Filter "Name='wuauserv'"查询指定服务的详细信息。 - 查询服务的状态:
Get-CimInstance -ClassName Win32_Service | Where-Object {$_.State -eq 'Running'}查询所有正在运行的服务。 - 启动服务:
Start-Service -Name 'wuauserv'启动指定服务(使用 PowerShell cmdlet)。 - 停止服务:
Stop-Service -Name 'wuauserv'停止指定服务。
- 查询所有服务:
例子:
Get-CimInstance -ClassName Win32_Service
Get-CimInstance -ClassName Win32_Service -Filter "Name='wuauserv'"
Get-CimInstance -ClassName Win32_Service | Where-Object {$_.State -eq 'Running'}
优点:
- 更加现代化,使用 CIM 提供的信息,性能较
wmic更高。 - 支持更加细致的查询和操作,可以结合 PowerShell 的其他 cmdlet 进行复杂的管道操作和脚本自动化。
- 支持远程管理,能够通过 PowerShell 的远程功能访问和管理远程计算机上的服务。
wmic 与 Get-CimInstance 比较
| 特性 | wmic |
Get-CimInstance |
|---|---|---|
| 协议 | 使用 WMI(Windows Management Instrumentation) | 使用 CIM(Common Information Model),是 WMI 的改进版本 |
| 命令行支持 | 传统的命令行工具 | PowerShell 的 cmdlet |
| 性能 | 性能相对较低,适用于简单操作 | 性能更高,适用于复杂查询和自动化任务 |
| 使用场景 | 用于快速查询和简单的系统管理任务 | 用于更现代化的管理,尤其是结合 PowerShell 脚本的自动化 |
| 远程管理支持 | 支持 WMI 远程查询,但配置较为复杂 | 支持远程管理,易于通过 PowerShell 脚本进行远程操作 |
wmic:是传统的 Windows 命令行工具,适合快速执行基本的服务管理任务,尤其适用于不需要复杂操作的场景。Get-CimInstance:是 PowerShell 提供的更现代的工具,适用于更复杂的查询和服务管理任务,支持 PowerShell 的管道操作,适合自动化和远程管理。
推荐: 如果你正在使用 PowerShell 并且需要更高效、更灵活的服务管理,Get-CimInstance 是更优的选择。而如果你在命令行中进行快速、简单的操作,wmic 仍然是一个方便的工具。
wevtutil、reg export、reg add、dism、logman 命令服务管理汇总说明
这些命令工具主要用于 Windows 系统中的日志管理、注册表编辑、服务管理等。下面是它们的详细说明和常见用法。
1. wevtutil 命令
wevtutil 是 Windows 中用于管理事件日志的命令行工具。它可以用来查询、导出、清除、备份和恢复事件日志。wevtutil 主要用于日志管理,特别是系统日志和应用日志。
- 常见用法:
- 查看事件日志:
wevtutil qe <日志名称>查询事件日志。 - 导出事件日志:
wevtutil epl <日志名称> <导出文件路径>将事件日志导出到文件。 - 清除事件日志:
wevtutil cl <日志名称>清除指定的事件日志。 - 列出所有日志:
wevtutil el显示所有事件日志名称。
- 查看事件日志:
例子:
wevtutil qe Application
wevtutil epl System C:\logs\system.evtx
wevtutil cl Application
wevtutil el
应用场景:
- 用于监控和分析系统的事件日志。
- 备份和清理日志文件。
2. reg export / reg add 命令
reg export 和 reg add 是用于 Windows 注册表管理的命令。reg export 用于导出注册表项,reg add 用于向注册表添加新的键值或修改现有键值。
reg export常见用法:- 导出注册表项:
reg export <注册表路径> <文件路径>将注册表项导出到文件。
- 导出注册表项:
例子:
reg export HKEY_LOCAL_MACHINE\Software\MySoftware C:\backup\mysoftware.reg
reg add常见用法:- 添加新的注册表键值:
reg add <注册表路径> /v <值名称> /t <值类型> /d <数据> - 修改现有的注册表键值:
reg add <注册表路径> /v <值名称> /t <值类型> /d <数据>
- 添加新的注册表键值:
例子:
reg add HKEY_LOCAL_MACHINE\Software\MySoftware /v MyKey /t REG_SZ /d "MyValue"
应用场景:
reg export:用于备份和迁移注册表配置。reg add:用于修改系统设置或安装时修改注册表。
3. dism 命令
dism(Deployment Imaging Service and Management Tool)是一个强大的工具,用于管理和维护 Windows 映像(包括安装和服务功能、驱动程序等)。dism 还可以用于修复 Windows 系统文件和服务。
- 常见用法:
- 查看服务状态:
dism /online /get-services列出所有服务的状态。 - 启用或禁用功能:
dism /online /enable-feature /featurename:<功能名> /all启用某个功能。 - 修复系统映像:
dism /online /cleanup-image /restorehealth修复 Windows 系统映像。 - 查看系统组件状态:
dism /online /get-feature-info /featurename:<功能名>
- 查看服务状态:
例子:
dism /online /get-services
dism /online /cleanup-image /restorehealth
dism /online /enable-feature /featurename:NetFx3 /all
应用场景:
- 用于修复系统映像和安装映像。
- 用于管理 Windows 功能和服务的状态。
4. logman 命令
logman 是一个 Windows 命令行工具,用于管理性能计数器、事件跟踪和数据收集。它常用于性能监控和数据收集,特别是在调试和优化过程中。
- 常见用法:
- 创建性能数据收集器:
logman create counter <收集器名称> -c <计数器路径> - 启动数据收集:
logman start <收集器名称> - 停止数据收集:
logman stop <收集器名称> - 查看收集器列表:
logman query列出所有的收集器。
- 创建性能数据收集器:
例子:
logman create counter MyCounter -c "\Processor(_Total)\% Processor Time"
logman start MyCounter
logman stop MyCounter
logman query
应用场景:
- 用于性能监控和日志收集。
- 用于创建和管理性能计数器和事件跟踪会话。
总结
| 命令/工具 | 功能描述 | 示例 |
|---|---|---|
wevtutil |
管理 Windows 事件日志,查询、导出、清理日志等。 | wevtutil qe Application wevtutil epl System C:\logs\system.evtx |
reg export |
导出注册表项到文件。 | reg export HKEY_LOCAL_MACHINE\Software\MySoftware C:\backup\mysoftware.reg |
reg add |
向注册表添加或修改键值。 | reg add HKEY_LOCAL_MACHINE\Software\MySoftware /v MyKey /t REG_SZ /d "MyValue" |
dism |
管理和修复 Windows 映像、功能和服务。 | dism /online /cleanup-image /restorehealth dism /online /get-services |
logman |
管理性能数据收集器和事件跟踪,进行性能监控。 | logman create counter MyCounter -c "\Processor(_Total)\% Processor Time" |
这些工具适用于 Windows 系统管理员、技术支持人员以及开发人员,用于系统管理、日志监控、性能调优等任务。
auditpol、netsh、schtasks、bcdedit 和 fsutil 这五个 Windows 服务管理命令的汇总与常见用法说明:
1. auditpol 命令
auditpol 命令用于管理 Windows 审计策略。它允许你查看和设置审核策略,用于增强系统的安全性和监控活动。
- 常见用法:
- 查看当前审核策略:
auditpol /get /category:*查看所有类别的审核策略。 - 设置审核策略:
auditpol /set /category:<类别> /success:enable /failure:disable设置特定类别的成功和失败审核。 - 启用或禁用策略:
auditpol /set /subcategory:<子类别> /success:enable /failure:enable启用或禁用审核。
- 查看当前审核策略:
例子:
auditpol /get /category:Logon/Logoff
auditpol /set /category:Logon/Logoff /success:enable /failure:enable
auditpol /set /subcategory:Logon/Logoff /success:enable /failure:disable
应用场景:
- 用于监控系统的登录、注销、文件访问等活动。
- 配置审计策略以符合安全需求。
2. netsh advfirewall 命令
netsh advfirewall 用于管理 Windows 防火墙。你可以通过它来配置防火墙规则、端口转发等。
- 常见用法:
- 查看防火墙状态:
netsh advfirewall show allprofiles显示所有防火墙配置。 - 启用或禁用防火墙:
netsh advfirewall set allprofiles state on启用防火墙,netsh advfirewall set allprofiles state off禁用防火墙。 - 添加防火墙规则(打开端口):
netsh advfirewall firewall add rule name="Open Port 8080" protocol=TCP dir=in localport=8080 action=allow
- 查看防火墙状态:
例子:
netsh advfirewall show allprofiles
netsh advfirewall set allprofiles state on
netsh advfirewall firewall add rule name="Open Port 8080" protocol=TCP dir=in localport=8080 action=allow
应用场景:
- 用于管理防火墙配置,打开或关闭端口。
- 为应用程序添加或删除防火墙规则。
3. schtasks 命令
schtasks 用于在 Windows 中安排、查看、删除和配置计划任务。它允许你管理系统上的自动化任务。
- 常见用法:
- 创建计划任务:
schtasks /create /tn <任务名称> /tr <命令> /sc <调度类型> /st <开始时间> - 列出所有任务:
schtasks /query - 删除计划任务:
schtasks /delete /tn <任务名称>
- 创建计划任务:
例子:
schtasks /create /tn "MyBackupTask" /tr "C:\Backup\backup.bat" /sc daily /st 02:00
schtasks /query
schtasks /delete /tn "MyBackupTask"
应用场景:
- 用于定期备份、清理日志、定时运行程序等任务的自动化管理。
4. bcdedit 命令
bcdedit 是一个用于管理 Windows 启动配置数据(BCD)的命令行工具。它通常用于配置启动加载器、设置操作系统的启动选项。
- 常见用法:
- 查看启动配置:
bcdedit /enum查看当前的启动配置。 - 设置默认启动操作系统:
bcdedit /default <ID>设置默认启动的操作系统。 - 设置启动延迟时间:
bcdedit /timeout <秒数>设置操作系统启动时的延迟。
- 查看启动配置:
例子:
bcdedit /enum
bcdedit /default {current}
bcdedit /timeout 30
应用场景:
- 用于修改系统的启动配置,如设置启动顺序、延迟等。
- 在双系统或多重启动环境下配置默认启动项。
5. fsutil 命令
fsutil 是 Windows 中一个高级的文件系统管理命令,用于检查或修改文件系统和卷的属性。
- 常见用法:
- 查询卷信息:
fsutil volume diskfree <驱动器号>查看磁盘的可用空间。 - 创建符号链接:
fsutil reparsepoint set <符号链接路径> <目标路径> - 查询和设置 NTFS 文件系统属性:
fsutil behavior query disable8dot3names
- 查询卷信息:
例子:
fsutil volume diskfree C:
fsutil reparsepoint set C:\Link D:\Target
fsutil behavior query disable8dot3names
应用场景:
- 用于管理磁盘、卷和文件系统。
- 设置符号链接、查询磁盘空间、修改文件系统属性等。
汇总表
| 命令/工具 | 功能描述 | 示例 |
|---|---|---|
auditpol |
管理 Windows 审计策略,配置系统的日志审核。 | auditpol /get /category:Logon/Logoff auditpol /set /subcategory:Logon/Logoff /success:enable /failure:enable |
netsh advfirewall |
配置和管理 Windows 防火墙,包括端口开放与规则设置。 | netsh advfirewall show allprofiles netsh advfirewall firewall add rule name="Open Port 8080" protocol=TCP dir=in localport=8080 action=allow |
schtasks |
创建、查看、删除和配置计划任务。 | schtasks /create /tn "MyBackupTask" /tr "C:\Backup\backup.bat" /sc daily /st 02:00 |
bcdedit |
管理 Windows 启动配置数据(BCD)。 | bcdedit /enum bcdedit /default {current} |
fsutil |
管理文件系统和卷的属性,创建符号链接等操作。 | fsutil volume diskfree C: fsutil reparsepoint set C:\Link D:\Target |
这些命令主要用于系统管理、网络配置、计划任务、启动项管理和文件系统操作等任务,适合 Windows 系统管理员和技术支持人员使用。
vmconnect、docker、perfmon、lodctr 和 winsat 这些与 Windows 服务管理相关的工具汇总与常见用法说明:
1. vmconnect 命令
vmconnect 是用于连接和管理 Hyper-V 虚拟机的命令行工具。它允许用户通过远程桌面协议 (RDP) 连接到虚拟机并进行操作。
- 常见用法:
- 连接到 Hyper-V 虚拟机:
vmconnect <主机名> <虚拟机名称> - 这通常在 Hyper-V 管理器中自动执行,但你也可以通过命令行直接启动连接。
- 连接到 Hyper-V 虚拟机:
例子:
vmconnect localhost "MyVirtualMachine"
应用场景:
- 连接到 Hyper-V 虚拟机,执行远程管理和故障排除。
2. docker 服务
docker 是一个用于创建、部署和管理容器化应用的开源平台。Docker 在 Windows 上通过 Docker Desktop 或 Windows Server 的 Docker 引擎运行。
- 常见用法:
- 启动 Docker 服务:
docker start <容器ID> - 停止 Docker 服务:
docker stop <容器ID> - 查看 Docker 容器状态:
docker ps - 查看 Docker 服务:
docker info
- 启动 Docker 服务:
例子:
docker start mycontainer
docker stop mycontainer
docker ps
docker info
应用场景:
- 管理和监控 Docker 容器,创建、启动和停止容器化应用。
3. perfmon 命令
perfmon 是 Windows 性能监视器的命令行工具,用于跟踪和记录系统的性能数据,包括 CPU、内存、磁盘和网络等。
- 常见用法:
- 启动性能监视器:
perfmon - 打开性能监视器的控制台:
perfmon /report - 查看实时性能数据:
perfmon /rel
- 启动性能监视器:
例子:
perfmon
perfmon /report
perfmon /rel
应用场景:
- 监控系统的性能,查看实时和历史的资源使用情况。
- 诊断性能瓶颈,进行性能优化。
4. lodctr 命令
lodctr 是一个用于加载和卸载性能计数器的工具。它可以修复 Windows 性能监视器中的计数器问题,尤其是在系统升级或恢复之后。
- 常见用法:
- 重新加载性能计数器:
lodctr /r - 显示帮助信息:
lodctr /?
- 重新加载性能计数器:
例子:
lodctr /r
lodctr /?
应用场景:
- 解决性能计数器加载问题。
- 在系统恢复或更改后确保性能计数器正常工作。
5. winsat 命令
winsat(Windows 系统评估工具)是一个用于评估计算机硬件性能的工具,主要是为了 Windows 性能评分(Windows Experience Index)。
- 常见用法:
- 运行系统性能评估:
winsat formal - 仅查看硬盘性能评分:
winsat disk - 查看系统分数:
winsat benchmark
- 运行系统性能评估:
例子:
winsat formal
winsat disk
winsat benchmark
应用场景:
- 运行系统性能测试和硬件评估。
- 获取计算机的硬件评分,特别是在首次安装或升级后。
汇总表
| 命令/工具 | 功能描述 | 示例 |
|---|---|---|
vmconnect |
连接到 Hyper-V 虚拟机,进行远程管理。 | vmconnect localhost "MyVirtualMachine" |
docker |
管理 Docker 容器,创建、启动、停止容器等。 | docker start mycontainer docker ps docker info |
perfmon |
监控系统性能,包括 CPU、内存、磁盘、网络等。 | perfmon perfmon /report perfmon /rel |
lodctr |
加载和卸载性能计数器,修复计数器问题。 | lodctr /r lodctr /? |
winsat |
进行系统硬件性能评估,获取 Windows 性能分数。 | winsat formal winsat disk winsat benchmark |
这些工具帮助用户管理和优化 Windows 系统的性能,管理虚拟机、容器,监控系统状态,评估硬件性能等。
handle、sigcheck、procdump、diskpart 和 nltest 等 Windows 服务管理相关命令工具的汇总与使用说明:
1. handle 命令
handle 是 Microsoft Sysinternals 提供的一个工具,用于查看和管理正在使用的文件句柄和进程。它可以帮助你查找哪些进程正在访问某个文件或目录。
- 常见用法:
- 列出所有句柄:
handle - 查找某个特定文件的句柄:
handle <文件路径> - 关闭特定进程的句柄:
handle -c <句柄> -p <进程ID>
- 列出所有句柄:
例子:
handle
handle C:\Users\JohnDoe\Documents
handle -c 0x12345678 -p 1234
应用场景:
- 查看哪些进程正在使用某个文件或资源。
- 强制关闭不再需要的句柄,以避免文件或资源被锁定。
2. sigcheck 命令
sigcheck 是 Sysinternals 提供的一个工具,用于检查文件的签名和版本信息,确认文件是否由受信任的发布者发布。它非常适用于安全分析和审计。
- 常见用法:
- 检查文件签名:
sigcheck <文件路径> - 递归检查目录中的所有文件:
sigcheck -r <目录> - 显示文件的版本信息:
sigcheck -v <文件路径>
- 检查文件签名:
例子:
sigcheck C:\Windows\System32\notepad.exe
sigcheck -r C:\Program Files
sigcheck -v C:\Windows\System32\kernel32.dll
应用场景:
- 安全审计,检查文件是否有有效的签名。
- 确保没有恶意或篡改的文件在系统中运行。
3. procdump 命令
procdump 是 Sysinternals 提供的一个工具,用于创建进程的内存转储文件(dump file),这是调试和分析应用程序崩溃时非常有用的工具。
- 常见用法:
- 创建进程转储:
procdump <进程ID> <输出文件> - 根据某些条件生成转储文件:
procdump -ma <进程ID> <输出文件> - 设置触发条件:
procdump -e 1 -f <错误类型> <进程ID> <输出文件>
- 创建进程转储:
例子:
procdump 1234 C:\dumps\mydump.dmp
procdump -ma 1234 C:\dumps\full_dump.dmp
procdump -e 1 -f "UnhandledException" 1234 C:\dumps\exception.dmp
应用场景:
- 诊断应用程序崩溃或性能问题。
- 捕获进程的内存状态,用于后续分析。
4. diskpart 命令
diskpart 是 Windows 自带的一个磁盘管理工具,用于磁盘、分区和卷的管理。它允许你对磁盘进行格式化、分区和调整大小等操作。
- 常见用法:
- 启动 Diskpart 工具:
diskpart - 列出所有磁盘:
list disk - 选择特定磁盘:
select disk <磁盘号> - 创建新分区:
create partition primary size=<大小> - 格式化分区:
format fs=ntfs quick
- 启动 Diskpart 工具:
例子:
diskpart
list disk
select disk 1
create partition primary size=10000
format fs=ntfs quick
应用场景:
- 管理磁盘和分区,例如创建、删除、格式化磁盘。
- 进行磁盘管理和恢复操作。
5. nltest 命令
nltest 是一个用于网络和域控制器管理的命令行工具,它可以用于测试域信任、验证域控制器的状态以及其他域相关的操作。
- 常见用法:
- 测试域信任:
nltest /domain_trusts - 查询域控制器:
nltest /dsgetdc:<域名> - 验证域控制器的状态:
nltest /server:<服务器名> /sc_verify:<域名> - 显示域和信任的状态:
nltest /dclist:<域名>
- 测试域信任:
例子:
nltest /domain_trusts
nltest /dsgetdc:mydomain.com
nltest /server:server1 /sc_verify:mydomain.com
nltest /dclist:mydomain.com
应用场景:
- 测试域控制器和域之间的信任关系。
- 验证域控制器的正常运行和网络连接。
汇总表
| 命令/工具 | 功能描述 | 示例 |
|---|---|---|
handle |
查看和管理进程句柄,查找正在使用文件的进程。 | handle C:\path\to\file handle -c 0x12345678 -p 1234 |
sigcheck |
检查文件签名和版本信息,确认文件来源。 | sigcheck C:\Windows\System32\notepad.exe sigcheck -r C:\ |
procdump |
创建进程内存转储文件,调试和分析崩溃进程。 | procdump 1234 C:\dumps\mydump.dmp procdump -ma 1234 C:\dump |
diskpart |
磁盘、分区和卷管理工具,用于磁盘操作。 | list disk select disk 1 format fs=ntfs quick |
nltest |
测试和管理网络和域控制器,查看域信任关系。 | nltest /dsgetdc:mydomain.com nltest /domain_trusts |
这些工具对管理员和高级用户在管理 Windows 系统、诊断问题和进行安全审计时非常有帮助。它们提供了强大的功能来进行系统优化、故障排除和安全检查。
SC、PsExec、AccessChk 和 bcdedit 命令与服务管理相关的说明:
1. SC 命令(Service Control)
SC 命令是 Windows 提供的一个服务控制工具,它允许你启动、停止、配置和查询系统服务。可以用来管理系统中的所有服务。
常见用法:
-
查询服务状态:
bashsc qc <服务名>这个命令会查询指定服务的配置信息,例如服务的二进制路径、启动类型等。
-
启动服务:
bashsc start <服务名>启动指定的服务。
-
停止服务:
bashsc stop <服务名>停止指定的服务。
-
配置服务:
bashsc config <服务名> start= <启动类型>配置服务的启动类型,启动类型有:
auto(自动)demand(按需)disabled(禁用)
注意:
start=后面必须有一个空格。 -
删除服务:
bashsc delete <服务名>删除指定的服务。
例子:
sc start wuauserv # 启动 Windows 更新服务
sc stop wuauserv # 停止 Windows 更新服务
sc config wuauserv start= disabled # 将 Windows 更新服务设置为禁用
sc delete wuauserv # 删除 Windows 更新服务
2. PsExec 命令
PsExec 是 Sysinternals 提供的一个远程执行工具,允许在远程计算机上执行程序、命令或服务。它可以用来在远程机器上启动服务或执行命令。
常见用法:
-
在远程计算机上执行命令:
bashpsexec \\<远程计算机名> <命令>这个命令在远程计算机上执行指定的命令。例如,你可以通过它在远程机器上启动服务、执行程序。
-
在远程计算机上以管理员权限执行命令:
bashpsexec \\<远程计算机名> -u <用户名> -p <密码> <命令> -
启动远程服务:
bashpsexec \\<远程计算机名> sc start <服务名>
例子:
psexec \\remotePC sc start wuauserv # 在远程计算机上启动 Windows 更新服务
psexec \\remotePC -u admin -p password sc stop wuauserv # 在远程计算机上以管理员身份停止服务
3. AccessChk 命令
AccessChk 是 Sysinternals 提供的一个工具,用于检查文件、注册表项、进程和服务的权限。它可以帮助你审计谁对某个对象有访问权限。
常见用法:
-
查看服务权限:
bashaccesschk -s <服务名>这个命令会显示指定服务的权限信息,告诉你哪些用户或组有访问该服务的权限。
-
查看文件夹、文件或注册表项的权限:
bashaccesschk -d <文件夹路径> accesschk -k <注册表项路径>
例子:
accesschk -s wuauserv # 查看 Windows 更新服务的权限
accesschk -d C:\Windows # 查看 Windows 文件夹的权限
accesschk -k HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion # 查看注册表项权限
4. bcdedit 命令
bcdedit 是用于管理 Windows 启动配置数据(BCD)的工具。它允许你查看和修改启动加载程序的设置。
常见用法:
-
查看当前的启动配置:
bashbcdedit这个命令将显示当前的启动配置数据,包括启动项、操作系统设置等。
-
修改启动项:
bashbcdedit /set <启动项标识符> <设置项> <值>例如,修改启动模式:
bashbcdedit /set {default} bootmenupolicy legacy # 设置启动菜单为经典模式 -
创建新启动项:
bashbcdedit /copy {default} /d "Windows 10 Safe Mode"这个命令会复制现有的启动项并为其创建一个新条目。
-
删除启动项:
bashbcdedit /delete <启动项标识符>
例子:
bcdedit # 查看启动配置数据
bcdedit /set {default} bootmenupolicy legacy # 设置启动菜单为传统模式
bcdedit /copy {default} /d "Windows 10 Safe Mode" # 创建 Windows 10 安全模式启动项
bcdedit /delete {<启动项标识符>} # 删除指定的启动项
汇总表
| 工具/命令 | 功能描述 | 示例 |
|---|---|---|
| SC | 管理和控制 Windows 服务,启动、停止、配置、查询服务 | sc start <服务名> sc stop <服务名> |
| PsExec | 远程执行命令或启动程序,管理远程服务 | psexec \\remotePC sc start <服务名> psexec \\remotePC cmd |
| AccessChk | 查看文件、注册表、服务、进程的权限信息 | accesschk -s <服务名> accesschk -d C:\folder |
| bcdedit | 管理 Windows 启动配置,查看和修改启动设置 | bcdedit /set {default} bootmenupolicy legacy bcdedit |
这些命令工具为管理员和开发人员提供了强大的功能,用于远程服务管理、权限审计、系统启动配置修改等操作,帮助更好地维护和管理 Windows 系统。
sc failure、sc config、sc sdset、sc sdshow、gpupdate、gpresult、winrs、logparser 和 diskshadow 命令的详细说明,这些命令通常用于服务管理、组策略更新、远程命令执行等任务。
1. sc failure
sc failure 命令用于配置服务的失败响应策略。如果服务在启动时失败,管理员可以配置服务的行为,如重启服务或记录事件。
常见用法:
sc failure <服务名> reset=<时间> actions=<失败次数>,<重启间隔>,<重启次数>
reset=<时间>:重置失败计数的时间间隔。actions=<失败次数>,<重启间隔>,<重启次数>:指定服务失败时的重试行为。
示例:
sc failure wuauserv reset= 60 actions= restart/5000/3
该命令设置 Windows 更新服务 在失败时重试 3 次,每次重试间隔 5 秒,失败计数会在 60 分钟后重置。
2. sc config
sc config 命令用于配置服务的启动类型、二进制路径、描述等信息。此命令对于服务的管理非常有用。
常见用法:
sc config <服务名> start= <启动类型>
- 启动类型可以是:
auto:自动启动demand:按需启动disabled:禁用服务
示例:
sc config wuauserv start= auto # 将 Windows 更新服务设置为自动启动
sc config wuauserv binPath= "C:\Path\To\new\binary.exe" # 设置服务的二进制文件路径
3. sc sdset
sc sdset 命令用于设置服务的安全描述符,控制服务的权限和访问控制。
常见用法:
sc sdset <服务名> <安全描述符>
- 安全描述符是一个访问控制列表 (ACL),定义了谁可以访问该服务以及他们的权限。
示例:
sc sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
这个命令设置 Windows 更新服务的安全描述符,允许特定的用户或组执行某些操作。
4. sc sdshow
sc sdshow 命令用于显示服务的安全描述符,查看服务的权限配置。
常见用法:
sc sdshow <服务名>
示例:
sc sdshow wuauserv
显示 Windows 更新服务 的安全描述符。
5. gpupdate
gpupdate 命令用于强制更新计算机和用户的组策略设置。它可以使策略立即生效,而不必等到下一次系统启动或用户登录。
常见用法:
gpupdate
这个命令会刷新计算机和用户的所有组策略设置。
-
强制刷新:
bashgpupdate /force -
仅刷新计算机策略:
bashgpupdate /target:computer -
仅刷新用户策略:
bashgpupdate /target:user
6. gpresult
gpresult 命令用于生成并查看组策略的结果集,可以查看计算机或用户所应用的组策略。
常见用法:
gpresult /R
这个命令会显示当前计算机和用户的组策略应用情况。
-
查看计算机的组策略:
bashgpresult /S <计算机名> /USER <用户名> /H report.html -
查看详细报告:
bashgpresult /V
7. winrs
winrs 命令用于在远程计算机上执行命令,它类似于 PsExec,但它是 Windows 自带的远程管理工具,通常用于 PowerShell 远程操作。
常见用法:
winrs -r:<远程计算机名> <命令>
例如,远程启动一个服务:
winrs -r:remotePC sc start wuauserv
8. logparser
logparser 是一个命令行工具,允许你查询各种日志文件(如事件日志、IIS 日志、文件系统等)并生成分析报告。
常见用法:
logparser "SELECT * FROM <日志文件路径>" -i:evt -o:txt
-
查看事件日志:
bashlogparser "SELECT * FROM C:\Windows\System32\winevt\Logs\Application.evtx" -i:evt -o:txt > output.txt -
查询 IIS 日志:
bashlogparser "SELECT * FROM C:\inetpub\logs\LogFiles\W3SVC1\u_ex*.log" -i:W3C -o:txt
9. diskshadow
diskshadow 命令用于管理和配置卷影副本(VSS)。它允许你创建、删除和管理卷的快照,用于备份和恢复。
常见用法:
-
创建卷影副本:
bashdiskshadow set context persistent add volume C: alias MyShadow create -
列出卷影副本:
bashdiskshadow list shadows all -
删除卷影副本:
bashdiskshadow delete shadows all
汇总表
| 命令/工具 | 功能描述 | 示例 |
|---|---|---|
sc failure |
配置服务的失败响应策略 | sc failure wuauserv reset=60 actions=restart/5000/3 |
sc config |
配置服务的启动类型、二进制路径等 | sc config wuauserv start= auto |
sc sdset |
设置服务的安全描述符(权限) | sc sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRSDRCWDWO;;;WD) |
sc sdshow |
显示服务的安全描述符(权限) | sc sdshow wuauserv |
gpupdate |
强制更新组策略设置 | gpupdate /force |
gpresult |
查看组策略的结果 | gpresult /R |
winrs |
在远程计算机上执行命令 | winrs -r:remotePC sc start wuauserv |
logparser |
查询日志文件并生成分析报告 | logparser "SELECT * FROM <日志文件路径>" -i:evt -o:txt |
diskshadow |
创建和管理卷影副本(VSS) | diskshadow add volume C: alias MyShadow create |
这些工具和命令为 Windows 系统管理员提供了强大的服务管理、策略更新和日志分析功能,可以在日常维护和故障排除中发挥重要作用。
与 Windows 服务管理 相关的命令汇总,包括 srvcheck、driverquery、pnputil、diskshadow、logman、bcdedit、accesschk 和 sigcheck 等工具及其功能介绍。它们通常用于服务、驱动程序、硬件管理、系统配置等方面。
1. srvcheck
srvcheck 是一个工具,用于检查网络共享的服务可用性。它可以检测特定共享文件夹的服务是否正常运行,或在给定服务器上检查指定端口的响应。
常见用法:
srvcheck <服务器名或IP地址> <共享名>
- 该工具适用于检测 SMB 服务的状态和可用性。
2. driverquery
driverquery 用于列出所有已安装的驱动程序及其详细信息,包括驱动程序的状态、提供商等。
常见用法:
- 列出所有驱动程序:
bash
driverquery - 显示驱动程序详细信息:
bash
driverquery /v - 按名称或类型筛选驱动:
bash
driverquery /fo list /v | findstr /i "service"
3. pnputil
pnputil 用于管理设备驱动程序,包括安装、删除或列出驱动程序包。它常用于处理驱动程序包(如 .inf 文件)和硬件设备。
常见用法:
- 列出所有驱动程序包:
bash
pnputil /enum-drivers - 安装驱动程序包:
bash
pnputil /add-driver <驱动路径> /install - 删除驱动程序包:
bash
pnputil /delete-driver <驱动路径> /force
4. diskshadow
diskshadow 是一个用于创建和管理卷影副本的命令行工具,广泛应用于备份和恢复任务。它也可用于与系统服务和存储配置相关的任务。
常见用法:
-
创建卷影副本:
bashdiskshadow进入交互模式后输入以下命令:
bashset context persistent add volume C: alias Shadow1 create -
列出所有卷影副本:
bashdiskshadow /list
5. logman
logman 是用于管理和创建性能日志、事件跟踪和报告的工具。它允许创建定期执行的日志任务,并用于监控和记录服务状态及其他系统活动。
常见用法:
- 创建日志:
bash
logman create counter <日志名称> -c "\Processor(*)\% Processor Time" - 启动日志记录:
bash
logman start <日志名称> - 停止日志记录:
bash
logman stop <日志名称> - 查看当前日志:
bash
logman query
6. bcdedit
bcdedit 是一个命令行工具,用于管理启动配置数据(BCD)。它通常用于配置和修复启动选项,但也可以与服务和启动项相关的配置一同使用。
常见用法:
-
查看当前启动项:
bashbcdedit /v -
设置启动项:
bashbcdedit /set {default} bootmenupolicy legacy -
修复启动项:
bashbcdedit /repair
7. accesschk
accesschk 是一个由 Sysinternals 提供的工具,用于检查和显示文件、注册表项、服务、进程等的权限。它可以帮助管理员了解用户或组对服务的访问权限。
常见用法:
- 检查服务权限:
bash
accesschk -s <服务名> - 检查文件夹权限:
bash
accesschk <文件夹路径>
8. sigcheck
sigcheck 由 Sysinternals 提供,用于验证文件(如服务的可执行文件)是否具有有效的签名,并显示数字签名和证书信息。
常见用法:
- 检查文件签名:
bash
sigcheck -m <文件路径> - 检查服务可执行文件的签名:
bash
sigcheck -q <服务的可执行文件路径>
汇总表
| 命令/工具 | 功能描述 | 示例用法 |
|---|---|---|
srvcheck |
检查网络共享的服务可用性 | srvcheck <服务器名或IP地址> <共享名> |
driverquery |
列出已安装的驱动程序及其详细信息 | driverquery /v |
pnputil |
管理设备驱动程序包(安装、删除、列出) | pnputil /enum-drivers |
diskshadow |
管理卷影副本(创建、列出、删除) | diskshadow /list |
logman |
管理和创建性能日志、事件跟踪和报告 | logman create counter <日志名称> |
bcdedit |
管理启动配置数据(BCD),配置启动选项 | bcdedit /v |
accesschk |
检查服务、文件夹、注册表项等的访问权限 | accesschk -s <服务名> |
sigcheck |
验证文件签名,查看数字签名和证书信息 | sigcheck -m <文件路径> |
这些命令工具主要用于 Windows 服务管理、驱动程序管理、权限检查 和 日志记录 等方面,可以帮助系统管理员有效地诊断和管理 Windows 系统中的服务和其他相关资源。
sc 命令用于管理和配置 Windows 服务。
| 命令 | 功能描述 | 选项及示例用法 |
|---|---|---|
sc <server> query |
查询服务的状态或枚举服务类型的状态 | sc query - 枚举活动服务和驱动程序的状态 |
sc query eventlog - 显示 eventlog 服务的状态 |
||
sc queryex eventlog - 显示 eventlog 服务的扩展状态 |
||
sc <server> queryex |
查询服务的扩展状态,或枚举服务类型的状态 | sc queryex eventlog - 显示 eventlog 服务的扩展状态 |
sc <server> start |
启动服务 | sc start MyService - 启动 MyService 服务 |
sc <server> pause |
向服务发送暂停控制请求 | sc pause MyService - 暂停 MyService 服务 |
sc <server> interrogate |
向服务发送查询控制请求 | sc interrogate MyService - 查询 MyService 服务状态 |
sc <server> continue |
向服务发送继续控制请求 | sc continue MyService - 继续 MyService 服务 |
sc <server> stop |
向服务发送停止请求 | sc stop MyService - 停止 MyService 服务 |
sc <server> config |
更改服务的配置(永久) | sc config MyService start= demand - 将 MyService 服务设置为按需启动 |
sc <server> description |
更改服务的描述 | sc description MyService "My new service description" - 更改 MyService 服务的描述 |
sc <server> failure |
更改服务的失败时执行的操作 | sc failure MyService reset= 0 actions= restart/5000 - 设置 MyService 服务在失败时的行为 |
sc <server> failureflag |
更改服务的失败操作标志 | sc failureflag MyService = reboot - 设置 MyService 服务的失败时重启标志 |
sc <server> sidtype |
更改服务的服务 SID 类型 | sc sidtype MyService restricted - 设置 MyService 服务的 SID 类型为受限 |
sc <server> privs |
更改服务所需的特权 | sc privs MyService SeServiceLogonRight - 设置 MyService 服务所需的特权 |
sc <server> managedaccount |
更改服务以将服务帐户密码标记为由 LSA 管理 | sc managedaccount MyService - 设置 MyService 服务为由 LSA 管理帐户密码 |
sc <server> qc |
查询服务的配置信息 | sc qc MyService - 查询 MyService 服务的配置 |
sc <server> qdescription |
查询服务的描述 | sc qdescription MyService - 查询 MyService 服务的描述 |
sc <server> qfailure |
查询失败时服务执行的操作 | sc qfailure MyService - 查询 MyService 服务的失败时操作 |
sc <server> qfailureflag |
查询服务的失败操作标志 | sc qfailureflag MyService - 查询 MyService 服务的失败操作标志 |
sc <server> qsidtype |
查询服务的服务 SID 类型 | sc qsidtype MyService - 查询 MyService 服务的 SID 类型 |
sc <server> qprivs |
查询服务的所需特权 | sc qprivs MyService - 查询 MyService 服务所需的特权 |
sc <server> qtriggerinfo |
查询服务的触发器参数 | sc qtriggerinfo MyService - 查询 MyService 服务的触发器信息 |
sc <server> qpreferrednode |
查询服务的首选 NUMA 节点 | sc qpreferrednode MyService - 查询 MyService 服务的首选 NUMA 节点 |
sc <server> qmanagedaccount |
查询服务是否将帐户与 LSA 管理的密码结合使用 | sc qmanagedaccount MyService - 查询 MyService 服务是否由 LSA 管理密码 |
sc <server> qprotection |
查询服务的进程保护级别 | sc qprotection MyService - 查询 MyService 服务的进程保护级别 |
sc <server> quserservice |
查询用户服务模板的本地实例 | sc quserservice MyService - 查询用户服务模板的实例 |
sc <server> delete |
从注册表中删除服务 | sc delete MyService - 删除 MyService 服务 |
sc <server> create |
创建服务(并将其添加到注册表中) | sc create MyService binPath= "C:\path\to\service.exe" - 创建 MyService 服务并设置其可执行文件路径 |
sc <server> control |
向服务发送控制命令 | sc control MyService 128 - 向 MyService 服务发送控制命令(128是控制命令的标识符) |
sc <server> sdshow |
显示服务的安全描述符 | sc sdshow MyService - 显示 MyService 服务的安全描述符 |
sc <server> sdset |
设置服务的安全描述符 | sc sdset MyService D:(A;;FA;;;SY) - 设置 MyService 服务的安全描述符 |
sc <server> showsid |
显示与任意名称对应的服务 SID 字符串 | sc showsid MyService - 显示 MyService 服务的 SID 字符串 |
sc <server> triggerinfo |
配置服务的触发器参数 | sc triggerinfo MyService - 配置 MyService 服务的触发器参数 |
sc <server> preferrednode |
设置服务的首选 NUMA 节点 | sc preferrednode MyService 0 - 设置 MyService 服务的首选 NUMA 节点 |
sc <server> GetDisplayName |
获取服务的 DisplayName | sc GetDisplayName MyService - 获取 MyService 服务的 DisplayName |
sc <server> GetKeyName |
获取服务的 ServiceKeyName | sc GetKeyName MyService - 获取 MyService 服务的 ServiceKeyName |
sc <server> EnumDepend |
枚举服务依赖关系 | sc EnumDepend MyService - 枚举 MyService 服务的依赖关系 |
sc <server> boot |
指示是否将上一次启动另存为最近一次已知的正确启动配置 | sc boot ok - 设置上一次启动为最近一次已知的正确启动配置 |
sc <server> Lock |
锁定服务数据库 | sc Lock - 锁定服务数据库 |
sc <server> QueryLock |
查询 SCManager 数据库的 LockStatus | sc QueryLock - 查询 SCManager 数据库的 LockStatus |
这些命令可以帮助你管理 Windows 系统中的服务,包括查询、创建、删除、控制、配置等操作。sc 工具是系统管理员在 Windows 环境下非常重要的服务管理工具。
SC(Service Control)、SRVANY、Winsw、NSSM、AlwaysUp 和 FireDaemon Pro 都是用于在 Windows 操作系统中将普通应用程序作为服务运行的工具。它们各自有不同的功能、特点和使用场景。以下是这些工具的对比表格:
| 工具/特性 | SC(Service Control) | SRVANY | Winsw | NSSM | AlwaysUp | FireDaemon Pro |
|---|---|---|---|---|---|---|
| 类型 | 内建工具 | 第三方工具 | 第三方工具 | 第三方工具 | 商业软件 | 商业软件 |
| 功能 | 管理和控制 Windows 服务 | 将应用程序作为服务运行 | 将 Java、.NET 或普通应用程序作为服务运行 | 将任意应用程序作为服务运行 | 专为应用程序服务设计 | 企业级服务管理工具 |
| 平台支持 | Windows(所有版本) | Windows 98/2000/XP/Server 2003 及更高版本 | Windows 7/8/10/Server 2008 及更高版本 | Windows 7/8/10/Server 2008 及更高版本 | Windows 10/8/7/Server 2008/2012及更高版本 | Windows Server 2003 及更高版本 |
| 安装方式 | 已内建在 Windows 中,使用命令行工具 | 安装简单,但依赖注册表设置 | 简单的安装程序,开源 | 安装程序,开源 | 安装程序,商业授权 | 安装程序,商业授权 |
| 配置方式 | 通过命令行配置 | 注册表设置 | XML 配置文件 | 图形界面或命令行配置 | 图形界面配置 | 图形界面和命令行配置 |
| 服务管理 | 启动、停止、查询、配置、删除服务 | 不提供服务控制功能 | 支持控制服务的启动、停止等 | 支持服务控制、日志记录、配置 | 提供全面的服务控制和日志管理 | 提供全面的服务控制、监控和日志功能 |
| 日志记录 | 无内建日志功能 | 不支持日志 | 支持简单的日志记录 | 提供标准日志支持 | 支持详细日志记录,错误报警 | 强大的日志记录、监控和报警功能 |
| 依赖服务支持 | 支持服务依赖关系配置 | 无 | 支持服务依赖配置 | 支持依赖服务配置 | 支持依赖服务配置 | 支持复杂的服务依赖和优先级配置 |
| 跨平台支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| 图形界面支持 | 无图形界面,只能通过命令行操作 | 无图形界面,只能通过注册表配置 | 无图形界面,仅 XML 配置 | 提供简单图形界面配置 | 提供完整图形界面,用户友好 | 提供完整图形界面,功能丰富 |
| 高级功能 | 功能相对基础 | 功能相对基础 | 适合 Java、.NET 和命令行程序 | 支持指定用户运行、优先级设置、调度等 | 提供重启机制、进程监控、资源管理 | 提供高级的进程管理、服务监控、自动重启 |
| 授权/费用 | 免费 | 免费 | 免费 | 免费(但有商业版本) | 商业软件,收费 | 商业软件,收费 |
| 错误处理与恢复机制 | 基本的错误处理,依赖于操作系统 | 无内建错误恢复 | 支持进程崩溃后自动重启 | 支持进程崩溃后自动重启 | 支持进程崩溃后自动重启,详细错误恢复 | 高级错误恢复机制,自动重启和报警 |
| 适用场景 | 简单服务管理,适合快速启动服务 | 适合需要简单将应用程序作为服务运行的场景 | 适合 Java 应用或需要简单配置的情况 | 适合需要简单且可靠的服务创建的场景 | 适合需要强大服务监控和管理的场景 | 企业级应用,需要复杂服务管理、监控和报警 |
总结:
- SC(Service Control):适用于简单的服务管理任务,内置于 Windows 中,功能较为基础,操作依赖命令行。
- SRVANY:较老的工具,简单但功能较为有限,主要通过注册表配置,不支持日志记录等高级功能。
- Winsw:轻量级、开源,适用于将 Java、.NET 或普通应用程序转化为 Windows 服务,功能强大但配置较为复杂。
- NSSM:免费、开源,功能简洁,适合需要快速将应用程序转为服务的场景,支持日志记录和简单的错误恢复。
- AlwaysUp:商业软件,功能强大,适合需要高度控制和监控服务的场景,支持进程重启、资源限制等。
- FireDaemon Pro:商业级服务管理工具,适用于企业级应用,提供全面的服务管理、监控和日志功能,功能非常强大。
选择适合的工具需要根据你的应用需求、管理复杂度以及预算来决定。
SRVANY、Winsw、NSSM、AlwaysUp 和 FireDaemon Pro 五个 Windows 服务管理工具的比较表格。我们从 安装方式、配置功能、支持的操作系统、性能、使用难度 等多个维度进行对比:
| 工具 | SRVANY | Winsw | NSSM | AlwaysUp | FireDaemon Pro |
|---|---|---|---|---|---|
| 开发者 | Microsoft (旧版工具) | Winsw(社区项目) | Patrick O'Brian (NSSM 项目) | Core Technologies | FireDaemon Services |
| 支持的操作系统 | Windows XP / Server 2003 及以前版本 | Windows XP / Server 2003 及以后版本 | Windows 7 / Server 2008 及以后版本 | Windows 7 / Server 2008 及以后版本 | Windows XP / Server 2003 及以后版本 |
| 安装方式 | 通过命令行手动配置 | 可执行文件 (不需要安装) | 可执行文件 (不需要安装) | 可执行文件 (不需要安装) | 可执行文件 (不需要安装) |
| 易用性 | 配置较为复杂,适合高级用户 | 配置简单,易于集成 | 简单易用,适合大多数用户 | 非常用户友好,提供图形界面 | 图形化界面,功能强大,适合企业级用户 |
| 配置方式 | 手动注册服务,修改注册表 | XML 配置文件 | 命令行配置,支持图形界面工具 | 图形界面配置,简便直观 | 图形界面配置,丰富的功能选项 |
| 自定义参数 | 支持 | 支持 | 支持(包括环境变量、启动参数等) | 支持(提供丰富的启动选项和配置) | 支持(环境变量、日志、启动参数等配置) |
| 服务管理功能 | 基本的服务启动、停止管理 | 完整的服务管理,支持依赖、优先级等 | 基本的服务管理,支持重定向日志 | 完整的服务管理功能,支持自动重启等 | 完整的服务管理功能,支持丰富的设置 |
| 日志管理 | 无内置日志功能 | 无内置日志功能,依赖第三方工具 | 内置日志重定向功能 | 内置日志管理,支持详细的日志选项 | 内置日志管理,支持多种日志格式 |
| 依赖关系管理 | 不支持 | 支持(可在配置文件中指定依赖关系) | 支持(可通过配置依赖项) | 支持(支持服务依赖配置) | 支持(可配置服务之间的依赖关系) |
| 重启/崩溃恢复 | 不支持 | 不支持 | 支持(支持自动重启) | 支持(自动重启选项) | 支持(可设置崩溃重启策略) |
| 性能开销 | 较低,但配置复杂 | 较低 | 低 | 中等(图形界面可能稍有开销) | 较高(功能丰富,可能占用更多资源) |
| 图形用户界面 | 无(仅命令行工具) | 无(基于 XML 配置文件) | 有(NSSM GUI 工具) | 有(非常易于使用的图形界面) | 有(专业的图形界面,适合企业使用) |
| 开源/免费 | 免费,开源 | 开源(GPL 许可) | 开源(MIT 许可) | 付费(30天免费试用) | 付费(提供试用版) |
| 服务管理限制 | 功能有限,仅用于简单的后台程序 | 对简单应用支持良好,配置灵活 | 支持大部分常见应用,并可配置细节 | 完整功能,适合企业级使用 | 企业级功能,支持更高级别的服务管理 |
| 扩展性 | 较低 | 中等 | 中等(支持外部配置文件) | 高(支持很多额外的功能选项) | 非常高(支持脚本、自定义扩展等) |
| 更新与维护 | 已停止更新(Microsoft 不再维护) | 活跃开发(社区驱动) | 活跃开发(社区驱动) | 定期更新和支持 | 定期更新与支持 |
详细对比说明
-
SRVANY:
- 作为一个较旧的工具,SRVANY 的功能非常基础,主要是将普通程序作为 Windows 服务运行。它的配置较为复杂,需要手动编辑注册表,并且不支持现代的日志管理、崩溃恢复等高级功能。
- 适用场景:适用于需要非常简单、轻量级的服务管理工具,但不推荐用于复杂环境或需要图形界面的情况。
-
Winsw:
- Winsw 是一个开源项目,支持通过 XML 配置文件来定义服务的行为。它对简单的后台程序支持较好,并且配置相对灵活。相比 SRVANY,Winsw 支持更多现代功能,但仍然缺乏图形界面。
- 适用场景:适合需要自定义服务配置的开发者,尤其是对于简单的应用程序和脚本,适用于开发和小型企业环境。
-
NSSM:
- NSSM(Non-Sucking Service Manager)是一个轻量级的工具,易于使用,支持通过命令行或图形界面管理服务。它内置支持日志重定向、环境变量和崩溃恢复等功能,是一种功能全面的解决方案。
- 适用场景:适合个人开发者、中小型企业,尤其是需要快速将程序转为服务并进行基础配置的场景。
-
AlwaysUp:
- AlwaysUp 是一个商业化产品,提供完整的服务管理功能,支持图形界面,具有非常高的可用性和易用性。它支持服务的自动重启、依赖管理、日志管理等高级功能。适合对服务可靠性有较高要求的企业用户。
- 适用场景:适合中到大型企业,尤其是需要高可用性和详细配置的生产环境。
-
FireDaemon Pro:
- FireDaemon Pro 是一个企业级的服务管理工具,功能非常全面,支持图形界面、崩溃恢复、依赖关系、日志管理等多种高级功能。适用于需要大规模、精细管理服务的企业环境。
- 适用场景:适合大中型企业,尤其是需要高级定制化服务管理、可靠性和性能优化的情况。
总结
- SRVANY 适合非常简单的服务管理,但缺乏现代化的功能。
- Winsw 提供了较灵活的配置,适合开发者,但不支持图形界面。
- NSSM 是一个简单易用的工具,适合个人和小型企业,提供了一定的功能扩展性。
- AlwaysUp 和 FireDaemon Pro 提供了更全面和专业的服务管理功能,适合中到大型企业,前者偏向易用性,后者偏向功能和扩展性。
免费工具:
- SRVANY: 优点:
- 允许将任何可执行文件转换为服务。
- Windows自带工具,无需额外安装。
- 简单易用,适合基本的服务管理需求。
缺点:
- 功能相对简单,不支持高级的服务管理功能。
- 不再得到官方支持和更新,可能存在一些稳定性问题。
- Winsw: 优点:
- 简单易用,提供了一个简单的配置文件来转换应用程序为服务。
- 开源免费,可以自由使用和定制。
- 支持多种编程语言的应用程序。
缺点:
- 功能相对基础,不支持一些高级的服务管理功能。
- 不支持图形界面,配置需要通过命令行完成。
- 带一个XML配置文件
- NSSM: 优点:
- 提供丰富的服务管理功能,如重启策略、环境变量配置等。
- 经过长时间测试,稳定可靠。
- 支持多种操作系统和编程语言。
缺点:
- 配置相对复杂,可能需要一定学习成本。
- 不支持图形界面,配置需要通过命令行完成。
收费工具:
- AlwaysUp: 优点:
- 提供用户友好的图形界面,使得配置服务变得简单直观。
- 支持多种高级的服务管理功能,如监控、警报、自动重启等。
- 商业软件,提供专业的支持和更新服务。
缺点:
- 需要购买许可证,价格较高。
- 对于一些基本的服务管理需求,可能功能过于强大,有些功能可能用不到。
- FireDaemon Pro: 优点:
- 提供多种高级的服务管理功能,如监控、警报、自动重启等。
- 商业软件,提供专业的支持和更新服务。
- 支持多种操作系统。
缺点:
- 需要购买许可证,价格较高。
- 可能对于一些简单的服务管理需求而言,功能过于复杂。

Servy 让您能够将任何应用程序作为原生的 Windows 服务运行,并完全控制工作目录、启动类型、进程优先级、日志记录、健康检查、环境变量、依赖项、启动前和启动后钩子以及参数。它是 NSSM、WinSW、AlwaysUp 和 FireDaemon 的现代开源替代品。
Servy 提供图形用户界面、命令行界面和 PowerShell 模块,允许您以交互方式或通过脚本和 CI/CD 管道来创建、配置和管理 Windows 服务。此外,它还提供了一个管理器界面,用于实时快速监控和管理所有已安装的服务。
如果您曾苦于内置的 sc 工具的局限性,或觉得 NSSM 功能或用户界面不足,那么 Servy 可能正是您所需要的。它解决了 Windows 服务的一个常见限制,即允许您设置自定义工作目录。内置的 sc 工具仅适用于专门设计为作为 Windows 服务运行的应用程序,并且始终使用 C:\Windows\System32 且无法更改。这可能会破坏依赖相对路径、配置文件或本地资源的应用程序。Servy 允许您将任何应用程序作为服务运行,并明确定义启动目录,确保其行为与从快捷方式或命令提示符启动时完全一致。
Servy 持续监控您的应用程序,如果其崩溃、挂起或停止,会自动重启它。它非常适合让非服务应用程序在后台运行,而无需将其重写为服务。您可以用它来运行 Node.js、Python、.NET、Java、Go、Rust、PHP 或 Ruby 应用程序;在重启后保持 Web 服务器、后台工作进程、同步工具或守护进程存活;并通过内置的健康检查、日志记录和重启策略,在生产环境中自动化任务运行器、调度程序或脚本。
开始使用
您有两种安装 Servy 的选项:手动下载安装或使用包管理器,如 WinGet、Chocolatey 或 Scoop。
请确保您已安装 WinGet、Chocolatey 或 Scoop。
在命令提示符或 PowerShell 中以管理员身份运行以下命令之一:
WinGet
winget install servy
Chocolatey
choco install -y servy
Scoop
scoop bucket add extras
scoop install servy
快速链接
-
下载
-
概述
-
安装指南
-
使用指南
-
Servy 管理器
-
Servy CLI
-
常见问题解答
-
完整文档
功能特性
-
简洁、直观的用户界面
-
使用 Servy 管理器监控和管理所有已安装的服务
-
实时跟踪已安装服务的 CPU 和 RAM 使用情况
-
提供 CLI 和 PowerShell 模块,支持完整的脚本编写和自动化部署
-
将任何可执行文件作为 Windows 服务运行
-
设置服务名称、描述、启动类型、优先级、工作目录、环境变量、依赖项和参数
-
在环境变量和进程参数中均支持环境变量扩展
-
可以以 Local System、本地用户、域账户或
DOMAIN\gMSA$的形式运行服务 -
将标准输出/标准错误重定向到日志文件,并支持基于大小的自动轮转
-
在启动服务前运行启动前钩子,支持重试、超时、日志记录和故障处理
-
在应用程序成功启动后运行启动后钩子
-
通过改进的生命周期管理和确保资源清理,防止出现孤立/僵尸进程
-
健康检查与自动服务恢复
-
在 Servy 管理器中按级别、日期和关键字浏览和搜索日志,以便更快地进行故障排除
-
导出/导入服务配置
-
服务事件通知:通过 Windows 通知和电子邮件在服务故障时发出警报
-
兼容 Windows 7–11 x64 及 Windows Server 各版本




浙公网安备 33010602011771号