Por que o Excel não pode abrir um arquivo quando executado a partir do agendador de tarefas?

9

Eu escrevi um script PowerShell que abre uma pasta de trabalho do Excel e executa uma macro. Quando executo esse script no console do PS, ou até mesmo na linha de comando usando o powershell.exe script.ps1, o jus funciona. Quando eu configuro uma tarefa no agendador de tarefas do Windows, ela gera uma exceção sobre esse arquivo do Excel, dizendo que ele não existe ou já está em uso.

O arquivo existe com certeza, já que o script é executado a partir da linha de comando, e eu tenho certeza que ele não está em uso.

Eu tentei mover o arquivo do Excel para uma área local e não privilegiada, para evitar problemas de privilégio de administrador / confiança de rede. A tarefa ainda é executada com privilégios mais altos. O caminho não tem espaços nem caracteres especiais.

Quando tento acessar o arquivo usando um objeto Sistema de arquivos, não há erros, mesmo quando executados a partir do agendador, portanto, é específico do método Excel.Application.Workbooks.Open ("..").

O que devo considerar agora?

Obrigado antecipadamente

    
por zrz 08.04.2013 / 19:03

3 respostas

8

É provável que seja um problema de permissões do DCOM. Automatizar o Excel às vezes é cheio de perigos ...

A única maneira que encontrei em torno de problemas como este é definir o Excel para ser executado como um usuário específico por meio de permissões DCOM.

  1. Abrir serviços de componentes (Iniciar - > Executar, digite dcomcnfg)
  2. Aprofundar para serviços de componentes - > Computadores - > Meu computador e clique em Configuração do DCOM
  3. Clique com o botão direito no aplicativo Microsoft Excel e escolha Propriedades
  4. Na guia Identidade, selecione Este usuário e insira o ID e a senha de uma conta de usuário interativa (domínio ou local) e clique em Ok

Mantê-lo como usuário interativo ou o lançamento não funciona com o agendador de tarefas, infelizmente, mesmo quando a tarefa é configurada para ser executada em uma conta que tenha acesso de administrador à máquina.

    
por 08.04.2013 / 20:50
31

Crie estas duas pastas:

32Bit:

C:\Windows\System32\config\systemprofile\Desktop  

64Bit:

C:\Windows\SysWOW64\config\systemprofile\Desktop

O Excel precisa dessas pastas se não for executado de forma interativa. Crie as duas pastas mesmo se você estiver em um sistema operacional de 64 bits.

    
por 07.10.2013 / 14:37
2

Ao definir permissões DCOM, se o Microsoft Excel não aparecer em dcomcnfg try mmc comexp.msc /32

    
por 03.04.2016 / 00:13