Вы должны войти, чтобы создавать сообщения и темы.

Bat файл для вкл/выкл служб

Всем привет, прошу помощи в написании простого 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, чтоб тоже нажал - включилась, нажал еще раз выключилась.
И такой вопрос, можно ли это все как-то запихнуть на ярлык программы? Или придется все же заходить в место там где батник, а потом уже программу запускать? Если не ошибаюсь в батник можно вписать так, чтобы после включения служб и программа запустилась, при выключении конечно вряд-ли можно сделать чтобы службы выключались, но вот программу включать можно думаю.

Привет.
Службы находятся, я уже писал тебе в Скопировано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

 

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Окей, а что нужно написать чтоб открыть приложения после включения служб?

А, господи.. увидел )

А как сделать чтоб просто служба включалась и выключалась при нажатии на скрипт? Без запуска приложений, это для службы ASUSOptimization осталось сделать и все.

p.s. Вроде все получилось) Спасибо за скрипт.

Если служба выключена, файл переименуется в ИмяСлужбы_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
Oxyray
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Это именно то, что нужно было, спасибо огромное)

А такой вопрос еще, как можно закрепить скрипт vbs на нижней панеле? Что-то не выходит, точно также как я хотел закрепить значки "Refresh" и "Reboot" от твикера, закрепляется скрипт пустой с какой-то иконкой от винды -__-

Видео.

Лайкнул Oxyray
Oxyray
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Господи... винда удивляет с каждым днем все больше и больше :c
Смотрел весь плейлист но все не упомнишь, спасибо еще раз