星期五, 8月 10, 2018

透過Windows工作排程於背景執行時 - 執行Powershell呼叫Excel程式失敗

透過Windows工作排程於背景執行時 - 執行Powershell呼叫Excel程式失敗

最近透過Powershell來取得【指定的Windows主機】的硬碟使用狀況,然後將資料寫入Excel檔中。
相關功能:
1. 使用【網域管理者】權限來設定每日排程
2. 將抓取的資料寫入【Excel】檔中
部分程式碼:
$excel = New-Object -COM "Excel.Application"
$workbook.Save()
$excel.Quit()

問題點:
排程選擇【只有使用者登入時才執行】:可以正常執行。(手動執行也正常)
排程選擇【不論使用者登入與否均執行】:執行失敗。
解決方案:
主要是先參考黑大寫的【暗黑執行緒-呼叫Excel的程式無法以排程方式執行】一文,
因為我的執行環境為32位元,所以於以下路徑新增【Desktop】資料夾,
執行工作排程則可正常寫入至Excel檔中。
相關路徑: C:\Windows\System32\config\systemprofile\Desktop
引用部分文章:
Excel 2007 automation on top of a Windows Server 2008 x64
https://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64
This solution is ...
・Windows 2008 Server x64
  Please make this folder.
  C:\Windows\SysWOW64\config\systemprofile\Desktop
・Windows 2008 Server x86
  Please make this folder.
  C:\Windows\System32\config\systemprofile\Desktop

2023/12/8補充說明:
原來在Windows 2012 Server x64使用此設定,可以正常執行排程;但該因2012已經EOS,所以r將原機升級到Windows 2019 Server x64版,排程卻只能在【只有使用者登入時才執行】,可以正常執行,因此網路上找一些方法測試,都失敗。最後發現,將MS office 2016 x86版本移除後,改安裝MS office 2016 x64版本,再依照上述方法增加Desktop目錄,排程選擇【不論使用者登入與否均執行】,就可以正常執行了!


 

解決「USB不斷斷開和重新連接」

4種方案解決「USB不斷斷開和重新連接」   當您在使用USB執行任務時,您的電腦卻突然出現USB不斷斷開和重新連接。這很讓人頭疼。因為它最終導致您無法訪問USB裝置的任何資料。 在開始解決方案之前,我們將首先檢查USB裝置在其他計算機系統上是否工作正常?答案顯而易見,在其...