Warum kann Excel eine Datei nicht öffnen, wenn sie über den Taskplaner ausgeführt wird?

Ich habe ein PowerShell-Skript geschrieben, das eine Excel-Arbeitsmappe öffnet und ein Makro ausführt. Wenn ich dieses Skript über die PS-Konsole oder sogar über die Befehlszeile mit Powershell ausführe.exe script. ps1, es funktioniert einfach. Wenn ich eine Aufgabe über den Windows-Taskplaner einrichte, wird eine Ausnahme zu dieser Excel-Datei ausgelöst, die besagt, dass sie entweder nicht existiert oder bereits verwendet wird.

Die Datei ist sicher vorhanden, da das Skript über die Befehlszeile einwandfrei ausgeführt wurde und ich bin mir sicher, dass es nicht in verwenden.

Ich habe versucht, die Excel-Datei in einen lokalen und nicht privilegierten Bereich zu verschieben, um Probleme mit dem Netzwerkvertrauen/den Administratorrechten zu vermeiden. Die Aufgabe wird weiterhin mit höchsten Berechtigungen ausgeführt. Der Pfad enthält keine Leerzeichen oder Sonderzeichen.

Wenn ich versuche, mit einem Dateisystemobjekt auf die Datei zuzugreifen, treten auch beim Ausführen über den Scheduler keine Fehler auf, daher ist sie wahrscheinlich spezifisch für die Methode Excel.Application.Workbooks.Open("..").

Was soll ich jetzt beachten?

Author: TylerH, 2013-04-08

4 answers

Es ist wahrscheinlich ein DCOM-Berechtigungsproblem. Die Automatisierung von Excel ist manchmal mit Gefahren verbunden...

Die einzige Möglichkeit, Probleme wie diese zu umgehen, besteht darin, Excel so einzustellen, dass es über DCOM-Berechtigungen als bestimmter Benutzer ausgeführt wird.

  1. Komponentendienste öffnen (Start -> Ausführen, dcomcnfg eingeben)
  2. Drilldown zu Komponentendiensten - > Computer - > Arbeitsplatz und klicken Sie auf DCOM Config
  3. Rechtsklick auf Microsoft Excel-Anwendung und wählen Sie Eigenschaften
  4. In der Identität registerkarte Wählen Sie diesen Benutzer aus, geben Sie die ID und das Kennwort eines interaktiven Benutzerkontos (Domäne oder lokal) ein und klicken Sie auf OK

Es als interaktiver Benutzer oder Benutzer zu behalten, funktioniert leider nicht mit dem Taskplaner, selbst wenn die Aufgabe so eingerichtet wird, dass sie unter einem Konto ausgeführt wird, das Administratorzugriff auf den Computer hat.

 11
Author: squillman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-04-08 18:50:03

Erstellen Sie diese beiden Ordner:

32Bit:

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

64Bit:

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

Excel benötigt diese Ordner, wenn sie nicht interaktiv ausgeführt werden. Erstellen Sie beide Ordner, auch wenn Sie sich auf einem 64-Bit-Betriebssystem befinden.

 44
Author: eric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-02-19 16:47:30

Wenn Sie DCOM-Berechtigungen festlegen, wenn Microsoft Excel nicht in dcomcnfg angezeigt wird, versuchen Sie es mit mmc comexp.msc /32

Referenz -

 4
Author: cmo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-04-02 22:13:38

In meinem Fall würde die Aufgabe erfolgreich abgeschlossen, wenn ich beide der folgenden:

  1. Aktiviert 'Mit höchsten Berechtigungen ausführen' in den Task-Einstellungen
  2. Füllen Sie das Feld 'Start In (optional)' in der Aktion der Aufgabe aus

Follow-Up:

Obwohl mein Skript die Excel-Datei geöffnet, die Makros ausgeführt, die Datei gespeichert, geschlossen und erfolgreich abgeschlossen hat.... die externen Daten wurden NICHT aktualisiert.

Um dies Zu beheben, musste ich die Identität des Benutzer in Microsoft-Excel-DCOM - (danke squillman):

  1. Systemsteuerung öffnen
  2. Administrative Werkzeuge
  3. Komponentendienste
  4. Computer
  5. Mein Computer
  6. DCOM Config
  7. Microsoft Excel-Anwendung -
  8. Eigenschaften
  9. Registerkarte Identität
  10. Wählen Sie diesen Benutzer
  11. Benutzername und Passwort eingeben
  12. Klicken Sie auf Übernehmen
  13. Ok

Taskplaner öffnet, aktualisiert, speichert und schließt nun meine Datei. Auch die Aufgabe erfolgreich abgeschlossen.

Hinweis:

Wenn ich versuche, in Excel zu arbeiten, wird die Fehlermeldung angezeigt: 'Objektverknüpfung und-einbettung können nicht verwendet werden."und Dateien werden nicht geöffnet. Dies alles verschwindet, wenn ich zurück in die DCOM Excel-Eigenschaften, Identität gehe und auf "Der startende Benutzer" klicke.

 0
Author: Amy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2021-01-08 13:44:57