共用方式為


適用於自動 RPA 環境的 Microsoft 365 自動自動化 Office 的考慮

雖然 Microsoft 365 for unattended RPA 提供的授權可讓 Office 自動化,但沒有任何使用者存在,但所有目前版本的 Office 都經過設計和測試,可在用戶端工作站上以使用者存在的方式執行,以便與應用程式的介面互動。 使用沒有使用者存在的應用程式所產生的非預期行為不會造成瑕疵。 如果您想要在此設定中執行 Office,您必須準備好在應用程式邏輯中考慮這些非預期的行為。

本文概述 Office 自動自動化的一些考慮,以協助您使用此方法。 不過,請注意,此設定中的 Office 使用量嚴格為「AS IS」,而且必須考慮這些非預期的行為。 此處提供的資訊並不詳盡,不保證能解決所有用戶端的所有問題。 建議您在部署之前徹底測試您的解決方案。

自動自動化的常見問題

如果您想要在沒有使用者出席的情況下使用 Office,請注意下列 Office 的行為可能與預期不同的區域。 若要讓您的解決方案順利執行,它必須解決這些問題,並盡可能將其影響降至最低。 當您建置應用程式時,請仔細考慮這些問題。

重要事項

Microsoft 目前不建議也不支援從任何自動、非互動式用戶端應用程式或元件 (的 Microsoft Office 應用程式自動化,包括 ASP、ASP.NET、DCOM 和 NT Services) ,因為 Office 在此環境中執行 Office 時,可能會呈現不穩定的行為和/或死結。 如需詳細資訊,請參 閱 Office 伺服器端自動化的考慮

互動式UI元素

Office 應用程式假設它們正以互動方式執行。 如果發生非預期的錯誤,或需要未指定的參數才能完成函式,Office 的設計目的是要提示使用者一個對話框,詢問使用者要如何繼續。 在自動自動化中,這可能會導致應用程式在應用程式停止時「停止回應」,直到收到此輸入為止。 如果您要透過其公用 API 將 Office 自動化,您可以適當地設定 Application.DisplayAlertsApplication.AutomationSecurity 等屬性來隱藏其中許多警示。 您的程式代碼應該設計成隨時識別和處理封鎖警示。

使用者身分識別

Office 應用程式在執行應用程式時需要使用者身分識別,即使應用程式是透過自動化啟動也一般。 此使用者身分識別可能會造成下列任何或全部:

  • 必須處理的其他登入UI存在。
  • 無法根據每位使用者訪問許可權開啟和/或編輯的檔案。
  • 例如,檔案 (元數據的未預期變更,會根據自動化應用程式實例) 的使用者識別身分識別來更新某些檔案屬性。

各種方法可協助減輕這些問題;例如,執行 檔檢查 以移除元數據。 根據您的案例,考慮這些方法是否適當。

伺服器端安全性

在自動執行 Office 並處理任意檔案內容時,該環境中沒有額外的保護可用來防止這些檔案中儲存的宏載入和執行。 Office 不會保護您免於無意中從程式代碼執行宏,或啟動可能執行宏的另一部伺服器。 您可以使用 Application.AutomationSecurity 之類的屬性來降低此風險,但您應該確定您只載入信任的內容。

此外,Office 使用許多元件 (例如 Simple MAPI、WinInet 和 MSDAIPP) ,可快取用戶端驗證資訊以加快處理速度。 當 Office 在伺服器端自動化並處理多個檔案時,如果已針對該工作階段快取驗證資訊,則一個用戶端可以使用另一個用戶端的快取認證。 因此,用戶端可以模擬其他使用者來取得未授與的訪問許可權。

UI 變更

Office 中的 UI 元素大致上是穩定的,但不保證任何 UI 元素的特定位置,而且可能會隨著產品設計演進而改變,以納入使用者意見反應並符合客戶需求。 任何自動化的邏輯都必須考慮到這一點。 這些變更可能會導致按鈕或群組索引標籤命名變更、在索引卷標之間移動命令、新增索引標籤,或移除命令以符合我們的功能取代原則。 這些變更可在 UI 中以及應用程式所提供的輔助功能資訊內進行,因為該資訊經過修改以改善可用性並考慮持續的客戶意見反應,而且可能會在不同時間推出給不同的使用者。

即使沒有產品變更,系統環境 (例如螢幕大小/解析度/DPI) 之間的差異,都可能導致專案在螢幕上的位置變更。 任何依賴螢幕座標來模擬使用者輸入的方法,都必須考慮這些變更並據以調整。

單個線程

Office 應用程式是非重新進入的 STA 型應用程式,其設計目的是為單一用戶端提供多樣化但需要大量資源的功能。 應用程式會使用全域資源,例如記憶體對應檔案、全域載入宏或範本,以及共用自動化伺服器。 這可能會限制可同時執行的實例數目,而且如果應用程式是在多客戶端環境中設定,則可能會導致競爭狀況。 如果您打算執行任何 Office 應用程式的多個實例,您應該計劃將它們隔離在虛擬機層級,以確保所產生解決方案的穩定性。

復原和穩定性

即使有上述考慮,如果應用程式以模擬用戶輸入的方式自動化,或大幅超過互動式使用方式的會話長度,它們可能會遇到以互動方式執行時不存在的問題。 在此內容中使用 Office 的解決方案應該主動建置機制來監視應用程式的狀態,並視需要重新啟動應用程式 (和/或其執行所在的虛擬機) 。

建議的替代專案

Microsoft 強烈建議一些不需要安裝 Office 並執行伺服器端的替代方案,而且比此組態中的自動化更有效率且更快速地執行一般工作。 在您將 Office 納入為專案中的伺服器端元件之前,請考慮替代方案。

Microsoft Graph

Microsoft 圖形 API 提供存取服務、數據和智慧,這些服務、數據和智慧可供使用者和解決方案作為 Microsoft 雲端的一部分,包括許多支援自動自動化需求的服務:存取使用者的郵件/行事曆/連絡人/檔案、檔轉換、Excel 活頁簿計算等等。 這些服務是專為自動使用和大規模存取而設計,並利用標準 RESTful API 語法。 如需有關 Microsoft Graph 以及如何使用它來處理使用者數據的詳細資訊,請造訪下列專案:

開啟 XML 檔案格式

許多自動化工作都涉及檔建立或編輯。 Office 支援 Open XML 檔案格式,可讓開發人員使用 ISO 29500 國際標準版中定義的標準 XML 和 ZIP 技術來建立、編輯、讀取和轉換檔案內容。 這些檔案格式可以透過任何 ZIP/XML 工具來操作,包括 Microsoft .NET 3.x Framework 中的 System.IO.Package.IO 命名空間。 直接編輯檔格式是建議和支援的方法,可處理服務對 Office 檔案所做的變更。

Microsoft 提供 SDK 來操作 .NET 3.x Framework 中的 Open XML 檔案格式。 如需 SDK 以及如何使用 SDK 來建立或編輯 Open XML 檔案的詳細資訊,請瀏覽下列專案: