Problema

Problema

Problema

Como o fim do suporte para servidores Windows 2003 chegará em 14 de julho, estamos migrando todas as nossas tarefas agendadas para um servidor Windows 2008 R2.

Usamos um banco de dados Microsoft(MS) Access 2003(mdb) para lidar com vários processos de back-end que complementam as interações de usuários e clientes com nosso sistema.

Um dos processos de back-end do MS Access, a causa desta questão, é a recusa de impressão quando um usuário não está logado.

O processo de back-end preenche uma tabela temporária, que é posteriormente usada para preencher o relatório que deve ser impresso. Este relatório possui uma consulta incorporada, imagens vinculadas e uma impressora padrão salva.

O usuário que está executando as tarefas agendadas é um usuário de domínio.

O que especulamos que poderia ser

Sessão 0 Isolamento- O Access tem uma pequena janela de impressão que mostra que você está na página X de N. Esta janela não pode ser interagida. Sinto que este pode ser o culpado, mas tudo o que tentámos não funcionou para o impedir.

O que tentamos

  1. Pasta Desktop criada no perfil do sistema
  2. Certifique-se de que o usuário seja administrador local com privilégios elevados
  3. Executá-lo manualmente enquanto estiver logado (isso funciona)
  4. Criando uma versão em miniatura do aplicativo que faz uma pequena amostra do trabalho de impressão.
  5. Definir a tarefa agendada para ser executada se o usuário estiver logado ou não. Independentemente disso, os outros processos no banco de dados MS Access ainda são executados e obtemos o relatório vazio do processo que não está sendo impresso.

Solução alternativa atual

Estamos mantendo o usuário do domínio logado.

Responder1

Esse problema pode ocorrer facilmente se você imprimir em uma impressora de sessão.

HKEY_Current_User\Printers\Connections (impressoras de sessão)

contra

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers (impressoras locais)

Qualquer impressora instalada em um compartilhamento de rede se enquadrará nessa categoria. Por favor, tente novamente com uma impressora instalada com uma fila tcp/ip local, essa impressora estará disponível em todo o sistema.

Responder2

Elias você olhou a tarefa agendada e marcou a caixa que diz "executar estando o usuário logado ou não"? Parece que seus problemas não foram verificados, portanto, quando a tarefa tenta ser executada, ela não consegue.

Responder3

Parece que as próprias impressoras não estão sendo detectadas quando o processo está em execução. Você tentou adicionar algum código de depuração à saída de um arquivo e ver onde ele está sendo pego? Descobri que processos travados no VBA não geram muitas informações no visualizador de eventos e normalmente exigem mais captura de erros no código.

Eu vi o problema de isolamento da sessão 0 e há soluções alternativas, mas todos os exemplos que encontrei estavam relacionados ao Excel.

Aqui está uma explicação do que é afetado pela Sessão 0.

https://msdn.microsoft.com/en-us/library/windows/hardware/dn653293%28v=vs.85%29.aspx

Responder4

Se você definir o UAC para a configuração mais baixa, isso melhorará a situação? Para fazer isso, clique em Iniciar e em Executar Digite msconfig na caixa/prompt de execução e clique em OK Clique na guia de ferramentas Clique em 'Alterar configurações do UAC' e clique em Iniciar Arraste o controle deslizante para a parte inferior Ok, as janelas e reinicie o servidor

Ao migrar a tarefa, você a recriou? Uma ótima maneira de migrar tarefas entre 2003 e 2008 é abrir o agendador de tarefas em 2008, conectar-se ao servidor de 2003 e exportar as tarefas. Você pode então apontar o agendador de tarefas de volta para o servidor 2008 e importar as tarefas. Se a tarefa estiver sendo executada com resultado 0x0, eu diria que o problema está fora da própria tarefa agendada.

Você pode confirmar se a impressora imprime quando uma página de teste é enviada? Pode ser uma ideia comparar as configurações da impressora nos servidores antigos e novos, caso ainda não o tenha feito.

informação relacionada