Войти

Показать полную графическую версию : Запуск программы на компьютерах в домене


-KeyMaster-
27-06-2012, 16:07
Собственно, есть элементарный батник со следующим кодом:
@echo off
start \\путь_к_программе\prog.exe
При запуске всех компов в домене запустится данная программка - напоминалка о днях рождениях. Меня волнует вопрос - как дополнить данный код, чтобы данная программа убилась из процессов через n-ное количество времени, скажем, 10 минут? Просто одновременно эту прожку запустят на 50 компах - нагрузка на серверный комп, откуда она стартанет, соответственно, возрастет? Да и не нужна она на компьютерах пользователей, висящая в трее целый день. Запустили, посмотрели, через 10 минут она убилась сама.
Как это сделать?

Iska
27-06-2012, 17:01
Просто одновременно эту прожку запустят на 50 компах - нагрузка на серверный комп, откуда она стартанет, соответственно, возрастет? »
Отчего бы?! У неё там база на 10 Гб, к которой она ежесекундно обращается?

через 10 минут она убилась сама. »
Например, так (скрипт VBScript):
Option Explicit

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim lngProcessID


Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(".", "root\cimv2")

If objSWbemServicesEx.Get("Win32_Process").Create("\\путь_к_программе\prog.exe", Empty, Nothing, lngProcessID) = 0 Then
WScript.Sleep 1000 * 60 * 10

If objSWbemServicesEx.Get("Win32_Process.Handle='" & CStr(lngProcessID) & "'").Terminate() = 0 Then
'
End If
End If

Set objSWbemServicesEx = Nothing
Set objSWbemLocator = Nothing

WScript.Quit 0

P.S. Останется фантомная иконка в System Tray.




© OSzone.net 2001-2012