Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Приостановка или перезапуск процесса (http://forum.oszone.net/showthread.php?t=288060)

solomonkane 17-09-2014 11:39 2403873

Приостановка или перезапуск процесса
 
Здравствуйте!
Отправляю файл на почту в письме через vbs скрипт, файл для отправки 1 постоянно перезаписывется и обновляется круглосуточно программой, запущенной от имени админ-пользователя.
Когда запускается скрипт он отсылает письмо, но без вложения, т.к. этот файл мониторит(используется) запущенной программой.
Можно ли переделать скрипт ниже, чтобы он находил этот процесс не по имени сразу, а по расположению, потом устранял и перезапускал его после отправки почты?
Ну или как-то взаимодействовать с bat/cmd?
Код:

On Error Resume Next
Dim o_Mess, v_Conf
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
Set o_Mess = CreateObject("CDO.Message")
With o_Mess
    .To = "TO"
    .From = "FROM"
    .Subject = "HeLLo"
    .TextBody = "*msg*"
    .AddAttachment "C:\users\PC\app data\programdir\file.zip"
    .TextBodyPart.Charset = "windows-1251"
With .Configuration.Fields
    .Item(v_Conf & "sendusing") = 2
    .Item(v_Conf & "smtpserver") = "smtp.mail.ru"
    .Item(v_Conf & "smtpauthenticate") = 1
    .Item(v_Conf & "sendusername") = "FROMLOGIN"
    .Item(v_Conf & "sendpassword") = "PASS"
    .Item(v_Conf & "smtpserverport") = 25
    .Item(v_Conf & "smtpusessl") = False
    .Item(v_Conf & "smtpconnectiontimeout") = 65
    .Update
End With
    .send
End With
Set o_Mess = Nothing


Iska 17-09-2014 12:10 2403886

solomonkane, на какой ОС работает «круглосуточно программа, запущенная от имени админ-пользователя»?

solomonkane 17-09-2014 12:25 2403898

Iska, windows 7

вот сам нарыл только это, может поможет в решений данной проблемы, но немного не то:
Код:

Restart Program Script:

set Service = GetObject ("winmgmts:")
set Shell = WScript.CreateObject("WScript.Shell")

'Name of the exe we want to watch
sEXEName = "processing.exe"
'Path of the folder it is in (Don't forget the trailing \)
sApplicationPath = "C:\process\"

'Loop until the system is shutdown or user logs out
while true
 bRunning = false

 'Look for our application. Set the flag bRunning = true
 'If we see that it is running

 for each Process in Service.InstancesOf ("Win32_Process")
  if Process.Name = sEXEName then
  bRunning=true
  End If
 next

'Is our app running?

if (not bRunning) then
 'No it is not, launch it
 Shell.Run Chr(34) & sApplicationPath & sEXEName & Chr(34)
end if

'Sleep a while so we do not hog the cpu
WScript.Sleep(2000)

wend

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

Iska 17-09-2014 12:55 2403915

solomonkane, я бы, вместо того, чтобы снимать процесс, попробовал использовать теневую копию.

Теневая копия — Википедия
Volume Shadow Copy Service
Shadow Copy из командной строки | PowerShell и другие скрипты

solomonkane 17-09-2014 16:11 2403995

Iska, спасибо за ответ :)
тогда у меня еще вопрос.
чтобы не заморачиваться с сервисами наверно проще этот файл скопировать а потом уже отправлять,
а как батником или в скрипте почты (ну или отдельно) зделать, так, чтобы:
искал нужный файл в ЗАДАННОЙ папке или диске, когда найдет копировал в другую папку создавая ее если не существует, а если папка уже есть - копирование в нее с перезаписью
и еще учитывать пробелы в имени файла и папок?

Iska 17-09-2014 16:42 2404008

Цитата:

Цитата solomonkane
чтобы не заморачиваться с сервисами наверно проще этот файл скопировать а потом уже отправлять, »

«Заморачиваться», я полагаю. придётся.

Цитата:

Цитата solomonkane
а как батником или в скрипте почты (ну или отдельно) зделать, так, чтобы:
искал нужный файл в ЗАДАННОЙ папке или диске, когда найдет копировал в другую папку создавая ее если не существует, а если папка уже есть - копирование в нее с перезаписью
и еще учитывать пробелы в имени файла и папок? »

Данный вопрос как-то относится к текущей теме?


Время: 00:28.

Время: 00:28.
© OSzone.net 2001-