Все идет своим чередом и после этой записи появилась идея скрыть появление (хоть и не длительное, но все же) выполнения команды .bat файла, которая запускается в Планировщике заданий на Windows 8.
Сразу скажу, что помощь получил по адресу http://forum.oszone.net/ так, что не стесняемся обращаться туда, ведь человек все знать не может.
И так, для скрытия выполнения команд в .bat файле, которые выполняются то ли через Планировщик заданий то ли еще каким то образом нужно написать .vbs скрипт, в котором будут находиться команды выполняемые ранее в "батнике" и в Планировщике будем уже указывать путь к выполнению не .bat файла. а .vbs скрипта.
И вот самой скрипт:
Option Explicit
Const Above_Normal = 32768
Dim objSWbemObjectEx
Dim lngProcessID
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
If .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1cv8.exe'").Count = 0 Then
Set objSWbemObjectEx = .Get("Win32_ProcessStartup")
objSWbemObjectEx.PriorityClass = Above_Normal
' Create method of the Win32_Process class (Windows) (http://msdn.microsoft.com/en-us/library/aa389388(v=vs.85).aspx)
If .Get("Win32_Process").Create( _
"""C:\Program Files\1cv82\8.2.16.352\bin\1cv8s.exe"" ENTERPRISE /F ПутьКБазе/N ИмяПользователя/P ПарольПользователя", _
"C:\Program Files\1cv82\8.2.16.352\bin\", _
objSWbemObjectEx, _
lngProcessID _
) <> 0 Then
WScript.Echo "Can't start process [""%Program Files\1cv82\8.2.16.352\bin\1cv8.exe"" ENTERPRISE /F ПутьКБазе /N ИмяПользователя/P ПарольПользователя."
End If
Set objSWbemObjectEx = Nothing
End If
End With
WScript.Quit 0
разберемся, что здесь приведено, а именно некоторые куски:
If .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1cv8.exe'").Count = 0 - так как моя задача была проверять запущен ли 1cv8.exe процесс и если нет то запустить
"""C:\Program Files\1cv82\8.2.16.352\bin\1cv8s.exe"" ENTERPRISE /F ПутьКБазе/N ИмяПользователя/P ПарольПользователя", _ - указываю, что запустить если не запущено 1cv8.exe, где можно указать путь к базе, имя пользователя и его пароль для автовхода
"C:\Program Files\1cv82\8.2.16.352\bin\", _ - здесь обязательно должен быть указан путь к запускаемой программе
WScript.Echo "Can't start process [""%Program Files\1cv82\8.2.16.352\bin\1cv8.exe"" ENTERPRISE /F ПутьКБазе /N ИмяПользователя/P ПарольПользователя." - это вывод комментария если, что то пошло не так
Сразу скажу, что помощь получил по адресу http://forum.oszone.net/ так, что не стесняемся обращаться туда, ведь человек все знать не может.
И так, для скрытия выполнения команд в .bat файле, которые выполняются то ли через Планировщик заданий то ли еще каким то образом нужно написать .vbs скрипт, в котором будут находиться команды выполняемые ранее в "батнике" и в Планировщике будем уже указывать путь к выполнению не .bat файла. а .vbs скрипта.
И вот самой скрипт:
Option Explicit
Const Above_Normal = 32768
Dim objSWbemObjectEx
Dim lngProcessID
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
If .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1cv8.exe'").Count = 0 Then
Set objSWbemObjectEx = .Get("Win32_ProcessStartup")
objSWbemObjectEx.PriorityClass = Above_Normal
' Create method of the Win32_Process class (Windows) (http://msdn.microsoft.com/en-us/library/aa389388(v=vs.85).aspx)
If .Get("Win32_Process").Create( _
"""C:\Program Files\1cv82\8.2.16.352\bin\1cv8s.exe"" ENTERPRISE /F ПутьКБазе/N ИмяПользователя/P ПарольПользователя", _
"C:\Program Files\1cv82\8.2.16.352\bin\", _
objSWbemObjectEx, _
lngProcessID _
) <> 0 Then
WScript.Echo "Can't start process [""%Program Files\1cv82\8.2.16.352\bin\1cv8.exe"" ENTERPRISE /F ПутьКБазе /N ИмяПользователя/P ПарольПользователя."
End If
Set objSWbemObjectEx = Nothing
End If
End With
WScript.Quit 0
разберемся, что здесь приведено, а именно некоторые куски:
If .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1cv8.exe'").Count = 0 - так как моя задача была проверять запущен ли 1cv8.exe процесс и если нет то запустить
"""C:\Program Files\1cv82\8.2.16.352\bin\1cv8s.exe"" ENTERPRISE /F ПутьКБазе/N ИмяПользователя/P ПарольПользователя", _ - указываю, что запустить если не запущено 1cv8.exe, где можно указать путь к базе, имя пользователя и его пароль для автовхода
"C:\Program Files\1cv82\8.2.16.352\bin\", _ - здесь обязательно должен быть указан путь к запускаемой программе
WScript.Echo "Can't start process [""%Program Files\1cv82\8.2.16.352\bin\1cv8.exe"" ENTERPRISE /F ПутьКБазе /N ИмяПользователя/P ПарольПользователя." - это вывод комментария если, что то пошло не так