Eu não estaria postando se eu tivesse tentado a pletora de possíveis soluções que foram postadas sobre isso anteriormente.
Eu desenvolvi um software, que usando um arquivo .vbs ( exporter.vbs ) executa um .exe de outro software ( reporter.exe ) , que está instalado na máquina do cliente.
Cenários de casos de uso
A execução manual do exporter.vbs (clique direito e aberto) funciona perfeitamente, exatamente como esperado. Quando executado na minha própria máquina através do Agendador de Tarefas como meu próprio usuário do Windows, ele funciona perfeitamente, exatamente como esperado.
Quando executado manualmente em uma caixa do Windows Server 2008/2012, ele funciona perfeitamente, exatamente como esperado. Quando executado através do Agendador de Tarefas como qualquer usuário (excluindo o grupo Administradores), o Agendador de Tarefas informa como 0x0, no entanto, o reporter.exe não gerou os arquivos conforme o esperado.
Quando executado em uma caixa do Windows Server 2008/2012 através do Agendador de Tarefas em execução como o Administrador , ele funciona, no entanto, durante a noite (quando a tarefa está definida para ser executado), ele não é executado.
Configuração da tarefa agendada - Geral
Configuraçãodatarefaagendada-Ações
Osscripts
Noscenáriosacima,oexporter.vbspareceestardesanimandonesseestágiodoscriptenquantoasoutraspartesdoscriptestãoemexecução(aoutrapartedoscriptesvaziaoXMLdedestinoarquivos).
FunctionExport(filepath,report)dimfsosetfso_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
Esta função é chamada 5 vezes, uma vez para cada relatório que precisamos exportar dados do Software.
O que já foi tentado
- Permissões completas de usuário na pasta do meu software
- Tentou executar como todos os usuários, seja local ou de domínio no servidor do cliente
- Tentei executar o vbs usando o cscript.exe
Há algo que estou perdendo em termos de como o vbs precisa ser executado no Agendador de Tarefas se eles manipularem arquivos, etc.