Как «убить» все процессы 1С на сервере терминалов

Опубликовано Опубликовано в рубрике 1C Программирование, MS Windows Server 2003

На сервере работает масса людей и частенько, некоторые из них, забывают закрыть перед уходом домой программу 1С. Автоматизация, которая исполняется ночью, требует монопольного доступа к базе данных 1С, а соответственно натыкается на проблему. Данная проблема решена при помощи …VBS скрипта:

On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate,(debug)}!\\.\root\CIMV2")
If Err.Number <> 0 Then
    WScript.Echo Err.Number & ": " & Err.Description
    WScript.Quit
End If
For Each objProc In objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1CV7s.exe'")
    objProc.Terminate
Next

Вот и все, сохраняем файлик с именем 1c-terminate.vbs, помещаем в авто-запуск, к примеру в 01.00 и скрипт выгрузит все незакрытые окна…

Данным скриптом в принципе можно решить любую подобную ситуацию, не обязательно с 1С, для этого достаточно изменить имя процесса который требуется «убить».