2016-03-05 156 views
3

這是一些奇怪的行爲,我有一個PowerShell腳本將XLSX文件轉換爲CSV文件。該腳本在控制檯中運行時沒有問題。PowerShell計劃任務運行腳本與Excel Com對象

試圖將任務/腳本結果安排在沒有數據(0字節)的CSV文件中。我發現this TechNet forum post證明有幫助。

實質上,包含使用Excel ComObject的Powershell腳本的計劃任務失敗,因爲您必須創建一個文件夾(或64位Windows上的兩個文件夾)。完成此操作後,手動運行時的任務按預期工作。它也適用於設置了觸發器並且用戶已註銷的情況。

這種類型的行爲與Excel ComObject有關嗎?我花了3個小時試圖讓這個工作。

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

(64Bit) 

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

回答

2

AFAIK MS沒有關於此問題/限制的官方文檔。它應該被報告爲一個錯誤(聯繫Microsoft支持)。

對於excel運行而言,桌面文件夾(系統默認沒有這個文件夾)的要求不應該是必需的,至少它應該創建了文件夾(如果缺失)。

+0

更糟的是,TechNet線程是從2010年開始的。請問這是來自Windows,Excel或PowerShell的錯誤嗎? – user4317867

+0

問題出在Excel.Application ComObject(或Excel應用程序本身)上。該問題也記錄在vbscript樣本中。 –

+0

我無法在https://connect.microsoft.com/directory/上記錄一個錯誤,所以我不確定接下來要採取的步驟。 – user4317867

0

我不相信微軟支持你正在嘗試做的事情。根據這一documentation,微軟指出:

微軟目前並不提倡,不支持,Microsoft Office應用程序自動化從任何無人蔘與的非交互式客戶端應用程序或組件(包括ASP,ASP.NET,DCOM ,和NT服務),因爲Office在此環境中運行時可能會出現不穩定的行爲和/或死鎖。

該文檔似乎適用於Office 2003,但我不確定自那時起他們是否改變了立場,因爲我還沒有找到其他文檔說明支持。最近到2009年,this MVP重申它不受支持。這些建議似乎是將OpenXML SDK用於非交互式自動化,或使用另一個第三方庫直接處理文件格式。

+0

現在事情開始有意義了,這就是我所說的當前行爲,由過去的問題所控制。在技​​術世界中,這些問題可能已經通過更新的代碼/技術或理解來識別和解決。正如所指出的那樣,建議的路線是在Microsoft .NET 3.x Framework中使用OpenXML和System.IO.Package.IO命名空間來編輯Office文件。麻煩是,我必須知道這一點! – user4317867

+0

是的,我遇到了類似的問題。有一個[PSExcel模塊](https://github.com/RamblingCookieMonster/PSExcel)利用[EPPlus](http://epplus.codeplex.com/)。你可以使用其中任何一種來減輕學習負擔。 – beavel

相關問題