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.exe script.ps1 ausführe, funktioniert es 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 vorhanden ist 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 verwendet wird.
Ich habe versucht, die Excel-Datei in einen lokalen und nicht privilegierten Bereich zu verschieben, um Probleme mit der Vertrauenswürdigkeit des Netzwerks / Administratorrechten zu vermeiden. Die Aufgabe wird weiterhin mit den 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. Ich denke, dies ist Excel.Application.Workbooks.Open("..")
methodenspezifisch.
Was soll ich jetzt beachten?
Antworten:
Es ist wahrscheinlich ein DCOM-Berechtigungsproblem. Die Automatisierung von Excel ist manchmal mit Gefahren verbunden ...
Die einzige Möglichkeit, die ich bei solchen Problemen gefunden habe, besteht darin, Excel so einzustellen, dass es über DCOM-Berechtigungen als bestimmter Benutzer ausgeführt wird.
Das Beibehalten als interaktiver Benutzer oder beim Starten funktioniert mit dem Taskplaner leider nicht, selbst wenn die Aufgabe so eingerichtet ist, dass sie unter einem Konto ausgeführt wird, das Administratorzugriff auf den Computer hat.
quelle
Erstellen Sie diese beiden Ordner:
32Bit:
64Bit:
Excel benötigt diese Ordner, wenn sie nicht interaktiv ausgeführt werden. Erstellen Sie beide Ordner, auch wenn Sie ein 64-Bit-Betriebssystem verwenden.
quelle
Wenn beim Festlegen von DCOM-Berechtigungen Microsoft Excel nicht in
dcomcnfg
try angezeigt wirdmmc comexp.msc /32
Referenz
quelle