Bat файл для вкл/выкл служб
Цитата: Oxyray от 13.11.2023, 09:25Всем привет, прошу помощи в написании простого bat файла который запускал бы и выключал определенные службы.
У меня есть 2 программы это cloudflare warp и vmware workstation, так вот мне не очень нравится, что в сумме висит 6 служб просто так когда машина не работает или тот же впн, пробовал ставить на запуск службы только при необходимости - не включаются они. По этому хотелось бы чтоб при включении виртуалки службы запускались и при выходе выключались, аналогичная ситуация с cloudflare, у него только 1 служба для работы. Нужно сделать так, чтобы просто на батник нажимал и службы включались, нажал снова - выключились. Чтоб два файла не держать, если это конечно можно реализовать в одном, думаю, что да.
Вот список служб для vmware:
VMware Authorization Service
VMware Autostart Service
VMware DHCP Service
VMware NAT Service
VMware USB Arbitration ServiceУ Clouflare только одна это:
Cloudflare WARPp.s. Если кто возмется можете еще пожалуйста аналогично сделать со службой ASUS Optimization, чтоб тоже нажал - включилась, нажал еще раз выключилась.
И такой вопрос, можно ли это все как-то запихнуть на ярлык программы? Или придется все же заходить в место там где батник, а потом уже программу запускать? Если не ошибаюсь в батник можно вписать так, чтобы после включения служб и программа запустилась, при выключении конечно вряд-ли можно сделать чтобы службы выключались, но вот программу включать можно думаю.
Всем привет, прошу помощи в написании простого bat файла который запускал бы и выключал определенные службы.
У меня есть 2 программы это cloudflare warp и vmware workstation, так вот мне не очень нравится, что в сумме висит 6 служб просто так когда машина не работает или тот же впн, пробовал ставить на запуск службы только при необходимости - не включаются они. По этому хотелось бы чтоб при включении виртуалки службы запускались и при выходе выключались, аналогичная ситуация с cloudflare, у него только 1 служба для работы. Нужно сделать так, чтобы просто на батник нажимал и службы включались, нажал снова - выключились. Чтоб два файла не держать, если это конечно можно реализовать в одном, думаю, что да.
Вот список служб для vmware:
VMware Authorization Service
VMware Autostart Service
VMware DHCP Service
VMware NAT Service
VMware USB Arbitration Service
У Clouflare только одна это:
Cloudflare WARP
p.s. Если кто возмется можете еще пожалуйста аналогично сделать со службой ASUS Optimization, чтоб тоже нажал - включилась, нажал еще раз выключилась.
И такой вопрос, можно ли это все как-то запихнуть на ярлык программы? Или придется все же заходить в место там где батник, а потом уже программу запускать? Если не ошибаюсь в батник можно вписать так, чтобы после включения служб и программа запустилась, при выключении конечно вряд-ли можно сделать чтобы службы выключались, но вот программу включать можно думаю.
Цитата: Mikhail от 13.11.2023, 10:51Привет.
Службы находятся, я уже писал тебе вHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, то что ты их написал имена, это просто отображаемое имя, например службаVMware Authorization ServiceэтоVMAuthdServiceи т.д. пропиши их тут, чтоб тот кто возьмется, уже вписал их.У меня валялся код, на vbs правда, может сгодиться, службы впишешь сам, 1.2.3.4.5 = название служб.
Set objShell = CreateObject("WScript.Shell") ' Запуск служб objShell.Run "powershell -Command ""Get-Service -Name '1', '2', '3', '4', '5' | Start-Service""", 0, True WScript.Sleep 500 ' Запуск приложения objShell.Run "powershell -Command ""Start-Process -FilePath 'Название приложения.exe' -WindowStyle Hidden""", 0, False ' Ждать завершения процесса Do WScript.Sleep 1000 Set colProcesses = GetObject("winmgmts:").ExecQuery("Select * from Win32_Process Where Name='Название приложения.exe'") Loop While colProcesses.Count > 0 ' Остановка служб objShell.Run "powershell -Command ""Get-Service -Name '1', '2', '3', '4', '5' | Stop-Service""", 0, True WScript.Sleep 500
Привет.
Службы находятся, я уже писал тебе в СкопированоHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, то что ты их написал имена, это просто отображаемое имя, например служба СкопированоVMware Authorization Service это СкопированоVMAuthdService и т.д. пропиши их тут, чтоб тот кто возьмется, уже вписал их.
У меня валялся код, на vbs правда, может сгодиться, службы впишешь сам, 1.2.3.4.5 = название служб.
Set objShell = CreateObject("WScript.Shell")
' Запуск служб
objShell.Run "powershell -Command ""Get-Service -Name '1', '2', '3', '4', '5' | Start-Service""", 0, True
WScript.Sleep 500
' Запуск приложения
objShell.Run "powershell -Command ""Start-Process -FilePath 'Название приложения.exe' -WindowStyle Hidden""", 0, False
' Ждать завершения процесса
Do
WScript.Sleep 1000
Set colProcesses = GetObject("winmgmts:").ExecQuery("Select * from Win32_Process Where Name='Название приложения.exe'")
Loop While colProcesses.Count > 0
' Остановка служб
objShell.Run "powershell -Command ""Get-Service -Name '1', '2', '3', '4', '5' | Stop-Service""", 0, True
WScript.Sleep 500
Цитата: Oxyray от 13.11.2023, 21:34Окей, а что нужно написать чтоб открыть приложения после включения служб?
Окей, а что нужно написать чтоб открыть приложения после включения служб?
Цитата: Oxyray от 13.11.2023, 22:14А, господи.. увидел )
А, господи.. увидел )
Цитата: Oxyray от 13.11.2023, 22:39А как сделать чтоб просто служба включалась и выключалась при нажатии на скрипт? Без запуска приложений, это для службы ASUSOptimization осталось сделать и все.
p.s. Вроде все получилось) Спасибо за скрипт.
А как сделать чтоб просто служба включалась и выключалась при нажатии на скрипт? Без запуска приложений, это для службы ASUSOptimization осталось сделать и все.
p.s. Вроде все получилось) Спасибо за скрипт.
Цитата: Mikhail от 14.11.2023, 03:29Если служба выключена, файл переименуется в ИмяСлужбы_ON(то есть, нажми чтоб включить), если Включена, то OFF.
strComputer = "." strServiceName = "ИмяСлужбы" Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where Name = '" & strServiceName & "'") For Each objService in colListOfServices If objService.State = "Running" Then objService.StopService() RenameScript(strServiceName & "_ON.vbs") Else objService.StartService() RenameScript(strServiceName & "_OFF.vbs") End If Next Sub RenameScript(newName) Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") Dim scriptPath scriptPath = WScript.ScriptFullName objFSO.MoveFile scriptPath, objFSO.GetParentFolderName(scriptPath) & "\" & newName End Sub
Если служба выключена, файл переименуется в ИмяСлужбы_ON(то есть, нажми чтоб включить), если Включена, то OFF.
strComputer = "."
strServiceName = "ИмяСлужбы"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where Name = '" & strServiceName & "'")
For Each objService in colListOfServices
If objService.State = "Running" Then
objService.StopService()
RenameScript(strServiceName & "_ON.vbs")
Else
objService.StartService()
RenameScript(strServiceName & "_OFF.vbs")
End If
Next
Sub RenameScript(newName)
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim scriptPath
scriptPath = WScript.ScriptFullName
objFSO.MoveFile scriptPath, objFSO.GetParentFolderName(scriptPath) & "\" & newName
End Sub
Цитата: Oxyray от 14.11.2023, 08:01Это именно то, что нужно было, спасибо огромное)
Это именно то, что нужно было, спасибо огромное)
Цитата: Oxyray от 14.11.2023, 11:49А такой вопрос еще, как можно закрепить скрипт vbs на нижней панеле? Что-то не выходит, точно также как я хотел закрепить значки "Refresh" и "Reboot" от твикера, закрепляется скрипт пустой с какой-то иконкой от винды -__-
А такой вопрос еще, как можно закрепить скрипт vbs на нижней панеле? Что-то не выходит, точно также как я хотел закрепить значки "Refresh" и "Reboot" от твикера, закрепляется скрипт пустой с какой-то иконкой от винды -__-
Цитата: Oxyray от 14.11.2023, 14:30Господи... винда удивляет с каждым днем все больше и больше :c
Смотрел весь плейлист но все не упомнишь, спасибо еще раз
Господи... винда удивляет с каждым днем все больше и больше :c
Смотрел весь плейлист но все не упомнишь, спасибо еще раз