2012-06-13 81 views
4

我正面臨一個奇怪的問題。自動執行PowerShell和Excel問題

當我運行這段代碼:

$Excel = New-Object -Com Excel.Application 
$book = $Excel.Workbooks.Add() 
[threading.thread]::CurrentThread.CurrentCulture = 'en-US' 
sleep 10 
$book.saveas("c:\Temp\test.xlsx") 
$Excel.quit() 
Stop-Process -Name "Excel*" 
在PowerGUI的

,PowerShell的host..anywhere,它的工作原理beatiful。

如果我把一個.bat文件並調用powerhsell「c:\ temp \ excel.ps1」也可以正常工作。

,但如果我嘗試安排這傢伙到計劃任務或一個SQL Server作業類型運行CMD錯誤發生:

消息 異常調用「另存爲」和「1」的說法(S):「另存爲方法工作簿cla ss失敗「

只有當它由SQL Server作業調用時(也是一個簡單的cmd命令,並且該行與.bat powerhsell」c:\ temp \ excel.ps1「相同) )錯誤發生。

它可能是什麼?我試圖改變fileformat..etc..and什麼

謝謝你們:)

+0

是文件路徑,按您的例子是,他們在現實情況下,有什麼不同?測試是否在同一臺機器上?你可以嘗試運行sql作爲你的憑證並測試它嗎? –

+0

是的..在同一臺機器上。只有在運行時才起作用。我認爲這與文化信息有關,但我也在改變文化信息。真的不知道 –

+0

也是我作爲域管理員放棄安全性的SQl代理帳戶。 Juts不能正常工作 –

回答

6

的解決方案是:

你必須創建一個文件夾(或兩個在64位窗口):

(32位,總是)

C:\ WINDOWS \ system32 \設置\ systemprofile \ Dektop

(64位)

C:\ WINDOWS \ Syswow64資料\ CONFIG \ systemprofile \桌面

解決的辦法是在論壇:

Solution Forum MS