
许多系统管理员和 IT 专业人员一直在寻求直接从命令行执行系统任务的有效方法,尤其是在 Windows 环境中。Windows 服务在维护系统和应用程序的无缝运行方面发挥着关键作用。通过命令行管理 Windows 服务可以提供更大的灵活性和速度,而不是依赖服务管理器等图形界面。本指南深入介绍了各种命令行工具,可直接从终端管理 Windows 服务。
1.使用以下工具管理 Windows 服务sc.exe
命令行实用程序sc.exe
是一种非常有用的工具,它使用户能够管理 Windows 服务。通过此实用程序,您可以通过命令行无缝配置、监视和控制服务,而无需使用图形服务管理器。
使用检查服务状态sc
要检查特定服务的状态,请使用以下sc query serviceName
命令。例如:
sc query MySQL80
此命令将显示有关 MySQL80 服务状态的详细信息:

如图所示,这表明MySQL当前在机器上处于非活动状态。
使用以下方式启动服务sc
要激活特定服务,请使用以下命令:
sc start MySQL80
启动服务后,您可以使用以下命令确认其状态:
sc query MySQL80

使用以下方式停止服务sc
如果需要停止服务以回收系统资源,请执行:
sc stop MySQL80
通过运行以下命令确认此操作:
sc query MySQL80

使用以下方式创建新服务sc
要建立一个新服务,语法是:
sc create mte binPath="C:\Users\HP\Desktop\Examples\Service.exe"start= auto

使用以下方式更新现有服务sc
使用以下方法修改现有服务的配置:
sc config serviceName start= demand

删除服务sc
要完全删除服务,请运行:
sc delete serviceName

net
2.使用命令管理 Windows 服务
该net
命令使用户无需图形界面即可管理 Windows 服务。它允许高效地启动、停止、暂停、恢复和查询服务。
net
使用命令启动和停止服务
执行以下命令来管理服务:
net start serviceName
net stop serviceName

暂停和恢复服务
对于允许的服务,您可以使用以下方式暂停和恢复操作:
net pause ServiceName
net continue ServiceName

使用以下方式检查服务状态net
虽然net
不直接报告服务状态,但您可以使用:
net start | findstr "ServiceName"

如果服务正在运行,此命令将返回服务名称;没有输出表示服务未处于活动状态。
远程服务管理
使用以下方式管理远程计算机上的服务:
net start ServiceName /S RemotePC
net stop ServiceName /S RemotePC
3.使用 PowerShell 命令管理 Windows 服务
PowerShell 通过专为服务管理而设计的 cmdlet 引入了更高级别的控制。利用Get-Service
、Start-Service
、Stop-Service
和等 cmdlet Restart-Service
,用户可以执行功能更强大的任务。
使用 Cmdlet 检查服务状态
要检查服务的状态,请使用:
Get-Service -Name MySQL80

使用 PowerShell 查询服务
利用 cmdlet 根据服务状态进行过滤。例如,列出正在运行的服务:
Get-Service | Where-Object { $_. Status -eq 'Running' }

使用 PowerShell 命令管理服务
使用以下方法启动和停止服务:
Start-Service -Name MySQL80
Stop-Service -Name MySQL80
并再次检查状态:
Get-Service -Name MySQL80

使用 PowerShell 命令更改服务启动类型
要修改服务的启动类型,您可以将其设置为自动、手动或禁用:
Set-Service -Name ServiceName -StartupType Automatic
Set-Service -Name ServiceName -StartupType Manual
Set-Service -Name ServiceName -StartupType Disabled
这可以根据您的操作偏好定制无缝管理。
使用 PowerShell 进行远程管理
要检查或控制远程计算机上的服务,请使用:
Get-Service -Name ServiceName -ComputerName RemotePC
此功能对于管理多计算机环境中的服务特别有用。
4.自动化服务管理任务
PowerShell 的脚本功能使管理员能够自动化服务管理,最大限度地减少人工干预。例如,您可以创建一个脚本,持续监控服务状态,并在服务出现故障时重新启动它。
自动化脚本示例
考虑一个脚本,它检查 MySQL80 服务是否可运行,如果不可运行则重新启动它:
$serviceName = "MySQL80" $service = Get-Service -Name $serviceName if ($service. Status -ne "Running") { Restart-Service -Name $serviceName -Force Write-Output "$serviceName was stopped and has been restarted." } else { Write-Output "$serviceName is already running." }
在 Windows 中,默认情况下会限制运行脚本。因此,要启用执行,请执行:
Set-ExecutionPolicy RemoteSigned

要运行创建的脚本,请导航到其位置并执行:
.\serviceScript.ps1

sc.exe
通过利用、和 PowerShell等命令行工具的强大功能net
,您可以完全控制 Windows 服务,而无需使用图形服务管理器。每种方法都提供了启动、停止和配置服务的有效方法。此外,PowerShell 的脚本功能促进了广泛的自动化,确保关键服务保持运行,同时提高系统性能和可靠性。
常见问题
1.什么是 Windows 服务?
Windows 服务是独立于用户会话运行的后台进程,为操作系统和应用程序提供基本功能。
2.如何知道我的 Windows 机器上正在运行哪些服务?
您可以使用PowerShell 中的sc query
或等命令找出正在运行的服务。Get-Service
3.我可以使用命令行远程管理服务吗?
是的,您可以使用net
结合/S
开关的命令或通过带有参数的 PowerShell cmdlet来管理远程计算机上的服务-ComputerName
。
发表回复 ▼