Comment faire pour exécuter un Windows 2008 tâche du planificateur avec “interagir avec le bureau”
J'ai une petite .NET application que je suis en cours d'exécution sous Windows Server 2008 via le Planificateur de Tâches. Cette application a besoin pour ouvrir un fichier excel, puis de l'enregistrer en tant que fichier csv. La tâche échoue lorsque j'essaie d'ouvrir le classeur. Si je le lance manuellement, sans le planificateur de tâches, l'exécution, l'application fonctionne très bien.
Je l'ai réglé sur "Exécuter avec les autorisations maximales" et ont "Exécuter météo utilisateur est connecté ou non" est cochée.
Ma conjecture est que ce processus a besoin d'interagir avec le bureau similaire à cocher la case "interagir avec le bureau" drapeau sur un service. Mais j'ai été incapable de trouver quelque chose de similaire pour les tâches planifiées.
Voici le code qui est un échec: (il échoue sur le classeur.appel ouvert)
public static void ConvertExcelToCsv(string source, string destination)
{
if (File.Exists(destination)) File.Delete(destination);
Application xl = new Application();
try
{
Workbook workbook = xl.Workbooks.Open(source, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Worksheet ws = (Worksheet)workbook.Sheets[1];
ws.SaveAs(destination, XlFileFormat.xlCSV, Type.Missing, Type.Missing, false, false, Type.Missing, Type.Missing, Type.Missing,true);
Marshal.ReleaseComObject(ws);
}
finally
{
xl.DisplayAlerts = false;
xl.Quit();
Marshal.ReleaseComObject(xl);
}
}
OriginalL'auteur Kelly | 2009-11-04
Vous devez vous connecter pour publier un commentaire.
J'ai eu des problèmes d'automatisation de Bureau à partir d'un Service Windows sous Windows Server 2008, même si ça fonctionne bien sous Windows Server 2003. Le problème se produit également lors de l'appel d'offres Ouvert, de sorte qu'il peut être le même problème.
J'ai essayé de suivre les conseils donnés par H Ogawa dans cette MSDN fil, et ça semblait fonctionner. C'est bizarre, mais bravo à M. Ogawa pour la découvrir.
Résumé de la "Ogawa Hack": créer un dossier sur le bureau pour le profil de système, que ce soit
C:\Windows\SysWOW64\config\systemprofile\Desktop
, ouC:\Windows\System32\config\systemprofile\Desktop
...selon que vous avez 64-bit de Windows.
Aussi, le dossier a besoin de l'autorisation d'écriture pour tout utilisateur est la "conduite" de Bureau.
[Edit: correction du lien URL]
Vous pouvez aussi avoir besoin de désactiver le contrôle de compte d'utilisateur pour le compte d'utilisateur de conduite de l'automatisation de l'Office sur le serveur - c'est ce qui a été le dernier pli pour moi.
J'ai suivi les Solutions qui n'a pas fonctionné pour moi. J'ai apporté quelques modifications à la dcom l'identité de "l'Application Microsoft Excel" qui a fonctionné pour moi. J'ai changé l'identité de 'Cet Utilisateur" et assuré l'Admin informations d'identification de compte. Cela a bien fonctionné pour moi et notre Webpart Sharepoint a commencé à travailler la façon dont il devrait être.
Que simplement travaillé. Parfait. Merci
OriginalL'auteur Gary McGill