Батник выключение ПК если у конкретного пользователя не запущен один из процессов 1cv8.exe

1. andrey7617 57 06.08.22 14:55 Сейчас в теме
Добрый день уважаемые форумчане.
Прошу помощи у гуру

Можете ли помочь написать батник чтобы он работал так -
Если у пользователя user1 запущен процесс 1cv8.exe или 1cv8c.exe или 1cv8s.exe тогда ПК не выключаем.
Если этот процесс не запущен то shutdown /s

нашел вот такой батник

@echo off
set "p=chrome.exe"
>nul ping -n 61 127.0.0.1
cmd/c for /l %%i in () do @tasklist /fi "imagename eq %p%"^|findstr/v :^|^| (echo Выключаем^& exit/b)^&^>nul ping -n 2 127.0.0.1


но он работает только для текущего пользователя ... и мне не надо чтобы он работал в цикле ...

Можете помочь ???
Вознаграждение за ответ
Показать полностью
Найденные решения
3. ishelper 06.08.22 20:00 Сейчас в теме +1 $m
(1)
Если у пользователя user1 запущен процесс 1cv8.exe или 1cv8c.exe или 1cv8s.exe тогда ПК не выключаем.
Можно так:

@echo off
if exist 1Cv8.csv del 1Cv8.csv
tasklist /FI "USERNAME eq Comp\user1" /FI "IMAGENAME eq 1cv8.exe" /FO CSV /NH | findstr 1cv8 > 1Cv8.csv
tasklist /FI "USERNAME eq Comp\user1" /FI "IMAGENAME eq 1cv8c.exe" /FO CSV /NH | findstr 1cv8 >> 1Cv8.csv
tasklist /FI "USERNAME eq Comp\user1" /FI "IMAGENAME eq 1cv8s.exe" /FO CSV /NH | findstr 1cv8 >> 1Cv8.csv
for /f "delims=" %%a in ('dir /b/s/a-d/od 1Cv8.csv') do (if %%~za LSS 10 shutdown.exe /s)

Вместо "Comp" - имя вашего компьютера.

Запуск от имени администратора, иначе выключается по любому!!!

P.S. На этот раз без $m? ;-)
andrey7617; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. independ 1527 06.08.22 18:50 Сейчас в теме +0.2 $m
(1) VBS
Set wshshell = CreateObject("WScript.Shell")
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Run1c = False
Set col = objWMIService.ExecQuery("Sel ect * fr om Win32_Process")
For Each i in col
 If Left(UCase(i.Name),2) = "1C" Then
  Run1c = True
  Exit For
 End If
Next
If Not Run1c Then
  wshshell.run("shutdown /s")
Else
  msgbox "1c running"
End If
Показать
andrey7617; +1 Ответить
3. ishelper 06.08.22 20:00 Сейчас в теме +1 $m
(1)
Если у пользователя user1 запущен процесс 1cv8.exe или 1cv8c.exe или 1cv8s.exe тогда ПК не выключаем.
Можно так:

@echo off
if exist 1Cv8.csv del 1Cv8.csv
tasklist /FI "USERNAME eq Comp\user1" /FI "IMAGENAME eq 1cv8.exe" /FO CSV /NH | findstr 1cv8 > 1Cv8.csv
tasklist /FI "USERNAME eq Comp\user1" /FI "IMAGENAME eq 1cv8c.exe" /FO CSV /NH | findstr 1cv8 >> 1Cv8.csv
tasklist /FI "USERNAME eq Comp\user1" /FI "IMAGENAME eq 1cv8s.exe" /FO CSV /NH | findstr 1cv8 >> 1Cv8.csv
for /f "delims=" %%a in ('dir /b/s/a-d/od 1Cv8.csv') do (if %%~za LSS 10 shutdown.exe /s)

Вместо "Comp" - имя вашего компьютера.

Запуск от имени администратора, иначе выключается по любому!!!

P.S. На этот раз без $m? ;-)
andrey7617; +1 Ответить
4. ishelper 06.08.22 20:26 Сейчас в теме
Я что-то пропустил? Публикация текстов CMD запрещена правилами?

Ладно, попробуем приложением.

Пояснения: вместо "Comp" - реальное имя компьютера, запуск от имени администратора, иначе выключается по любому!!!
Прикрепленные файлы:
Check1C.cmd
independ; +1 Ответить
5. XAKEP 07.08.22 15:20 Сейчас в теме
Если у пользователя user1 запущен процесс 1cv8.exe или 1cv8c.exe или 1cv8s.exe тогда ПК не выключаем

1.пользователь не закрыл 1с
2.программа висит в фоне по техническим причинам

может установить через полчаса после окончания рабочего времени ?
andrey7617; +1 Ответить
6. andrey7617 57 10.08.22 18:43 Сейчас в теме
может установить через полчаса после окончания рабочего времени ?

- нет задумка в том что если пользователь запустил обработку на ночь то не выключаем ...

P.S. На этот раз без $m? ;-)

нет брат ... Ат души ... Уважение ... очень помог мне . Лови монетку ...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот