使用命令行指令管理 Windows 服务

使用命令行指令管理 Windows 服务

许多系统管理员和 IT 专业人员一直在寻求直接从命令行执行系统任务的有效方法,尤其是在 Windows 环境中。Windows 服务在维护系统和应用程序的无缝运行方面发挥着关键作用。通过命令行管理 Windows 服务可以提供更大的灵活性和速度,而不是依赖服务管理器等图形界面。本指南深入介绍了各种命令行工具,可直接从终端管理 Windows 服务。

1.使用以下工具管理 Windows 服务sc.exe

命令行实用程序sc.exe是一种非常有用的工具,它使用户能够管理 Windows 服务。通过此实用程序,您可以通过命令行无缝配置、监视和控制服务,而无需使用图形服务管理器。

使用检查服务状态sc

要检查特定服务的状态,请使用以下sc query serviceName命令。例如:

sc query MySQL80

此命令将显示有关 MySQL80 服务状态的详细信息:

使用 sc 检查服务状态

如图所示,这表明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

删除服务

net2.使用命令管理 Windows 服务

net命令使用户无需图形界面即可管理 Windows 服务。它允许高效地启动、停止、暂停、恢复和查询服务。

net使用命令启动和停止服务

执行以下命令来管理服务:

net start serviceName net stop serviceName

使用 net 命令启动或停止服务

暂停和恢复服务

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

net pause ServiceName net continue ServiceName

暂停和恢复服务网络命令

使用以下方式检查服务状态net

虽然net不直接报告服务状态,但您可以使用:

net start | findstr "ServiceName"

使用net命令检查服务状态

如果服务正在运行,此命令将返回服务名称;没有输出表示服务未处于活动状态。

远程服务管理

使用以下方式管理远程计算机上的服务:

net start ServiceName /S RemotePC net stop ServiceName /S RemotePC

3.使用 PowerShell 命令管理 Windows 服务

PowerShell 通过专为服务管理而设计的 cmdlet 引入了更高级别的控制。利用Get-ServiceStart-ServiceStop-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

使用 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

来源和图片

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注