Я не буду публиковать, если бы я попробовал множество возможных решений, которые были опубликованы по этому поводу ранее.
Я разработал часть программного обеспечения, которая с помощью файла .vbs (exporter.vbs) выполняет .exe из другой части программного обеспечения (reporter.exe), которая установлена на клиентском компьютере.
Сценарии использования
Запуск файла exporter.vbs вручную (щелчок правой кнопкой мыши и открытие) работает идеально, точно так, как ожидалось. При запуске на моем компьютере через планировщик заданий в качестве моего собственного пользователя Windows, он работает идеально, именно так, как и ожидалось.
При запуске на клиентском компьютере с Windows Server 2008/2012 вручную он работает идеально, точно так, как ожидалось. При запуске через планировщик заданий от имени любого пользователя (исключая группу администраторов) планировщик заданий сообщает как 0x0, однако reporter.exe не сгенерировал файлы, как ожидалось.
При запуске на клиентском компьютере Windows Server 2008/2012 с помощью планировщика задач, выполняемого от имени администратора, он работает, однако в одночасье (когда наша задача настроена на запуск) не запускается.
Настройка запланированных задач - Общие
Настройка запланированных задач - Действия
Скрипты
В приведенных выше сценариях файл exporter.vbs , по-видимому, отключается на этом этапе выполнения сценария, когда выполняются другие части сценария (другая часть сценария очищает целевые файлы XML).
Function Export(filepath, report)
dim fso
set fso_tidy = CreateObject("Scripting.FileSystemObject")
if fso_tidy.FileExists(filepath)=true then
set fso_tidy = nothing
set oShell = CreateObject("WScript.Shell")
oShell.Run """"&simsdir&"\CommandReporter.exe"" /QUIET /user="""&simsu&""" /password="""&simsp&""" /REPORT:"""&report&" v"&rptv&""" /OUTPUT:"""&filepath&"""", 0, true
set oShell = nothing
set fso_tidy = CreateObject("Scripting.FileSystemObject")
set objFile = fso_tidy.GetFile(filepath)
if objFile.size > 64 then
size = round(objFile.size / 1024, 1)
WriteToLog "DATA", "(OK) "&report&" EXPORTED (size: "&size&"kb)"
else
WriteToLog "DATA", "(FAILED) "&report&" EXPORTED (size: "&size&"kb)"
end if
set objFile = nothing
end if
set fso_tidy = nothing
end Function
Эта функция вызывается 5 раз, один раз для каждого отчета, который нам нужен для экспорта данных из Программного обеспечения.
Что уже испробовано
- Полные права пользователя в папке моего программного обеспечения
- Пробовал работать под любым пользователем, будь то локальный или доменный уровень на клиентском сервере
- Пробовал запускать vbs используя cscript.exe
Есть ли что-то, чего мне не хватает с точки зрения того, как VBS нужно запускать из планировщика задач, если они манипулируют файлами и т.д.