PowerShell计划任务,以使用Excel Com Object运行脚本

这是一些奇怪的行为,我有一个PowerShell脚本将XLSX文件转换为CSV文件。 这个脚本在控制台中运行没有问题。

尝试将任务/脚本结果安排在没有数据(0字节)的CSV文件中。

在我的search中,我发现这个TechNet论坛post ,certificate是有帮助的。

实质上,包含使用Excel ComObject的Powershell脚本的计划任务失败,因为您必须创build一个文件夹(或64位Windows上的两个文件夹)。 完成此操作后,手动运行时的任务将按预期工作。 它也适用于触发器设置和用户注销。

Excel ComObject的这种types的行为是否在任何地方被logging? 我花了3个小时试图让这个工作。

C:\Windows\System32\config\systemprofile\Desktop (64Bit) C:\Windows\SysWOW64\config\systemprofile\Desktop 

AFAIK MS没有关于此问题/限制的官方文档。 它应该被报告为一个错误(联系Microsoft支持)。

一个桌面文件夹(系统默认没有)的要求不应该是需要运行Excel,至less应该创build文件夹,如果丢失。

我不相信微软支持你正在尝试做的事情。 根据这个文件 ,微软说:

Microsoft目前不推荐并不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定的行为和/或在此环境中运行Office时发生死锁。

该文档似乎是为Office 2003,但我不知道他们是否改变了那里立场,因为我还没有发现其他文件说明支持。 就在最近的2009年, 这个MVP重申不支持。 这些build议似乎是将OpenXML SDK用于非交互式自动化,或者将其他第三方库直接用于文件格式。