灵易深论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 217|回复: 1

批量重启含“veeam”关键字的所有服务的命令

[复制链接]

101

主题

29

回帖

302

积分

超级版主

积分
302
发表于 2024-4-28 09:08:30 | 显示全部楼层 |阅读模式
本帖最后由 edupxl 于 2024-4-28 09:18 编辑

在 Windows Server 操作系统上,你可以使用 PowerShell 来批量重启包含特定关键字的服务。假设你要重启所有包含 "veeam" 关键字的服务,你可以执行以下命令



Get-Service | Where-Object { $_.DisplayName -like "*veeam*" } | Restart-Service -Force


要关闭包含特定关键字的所有服务,你可以使用类似的 PowerShell 命令。以下是关闭所有包含 "veeam" 关键字的服务的命令:

powershell
Copy code
Get-Service | Where-Object { $_.DisplayName -like "*veeam*" } | Stop-Service -Force
这个命令与之前的命令相似,不同之处在于它使用了 Stop-Service 来停止服务而不是重启服务。

解释一下这个命令:

Get-Service:获取系统中的所有服务。
Where-Object { $_.DisplayName -like "*veeam*" }:过滤包含 "veeam" 关键字的服务。
Stop-Service -Force:对过滤出来的服务执行强制停止操作。
同样,请确保以管理员权限运行 PowerShell,以便执行服务关闭操作

回复

使用道具 举报

101

主题

29

回帖

302

积分

超级版主

积分
302
 楼主| 发表于 2024-4-28 09:23:10 | 显示全部楼层
也可以用脚本实现:

@echo off
fsutil dirty query "%SystemDrive%">nul 2>&1 || "%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -Command "Start-Process '%~f0' -Verb RunAs" 2>nul && goto :eof || goto :eof
:menu
set switch=
cls
echo 1) Start
echo 2) Stop
choice /c:12 /n /m "Choose: "
if "%errorlevel%"=="1" set switch=start
if "%errorlevel%"=="2" set switch=stop
for /f "tokens=2" %%? in ('sc query type^= service state^= all^|find /i "veeam"^|find /i "service_name"^|find /i /v "sqlagent"') do net %switch% "%%?"
if "%switch%"=="stop" for /f "tokens=3*" %%? in ('tasklist /fo list^|find /i "veeam"') do taskkill /f /im "%%?"
pause
goto menu
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|灵易深论坛 ( 沪ICP备2020036158号-2 )

GMT+8, 2025-6-22 01:39 , Processed in 0.014375 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表