在 Factory OS 中使用診斷 Win32 應用程式
Factory OS win32_manufacturing和win32_development產品設定可讓您在製造、布建和硬體驗證流程期間,在容器中執行現有的 Win32 製造和診斷應用程式。 這些 Factory OS 產品組態會使用 Hyper-V 進行容器支援和 RDP,在主機和客體作業系統之間進行通訊。
建立包含 win32 支援的 Factory OS 映射工作區
若要開始建立包含 win32 支援的 Factory OS 映射,您必須建立新的工作區:
以系統管理員身分開啟 Windows System Kit 環境。
執行
PrepWSKWorkspace
,指定FactoryOS
產品及win32_manufacturing
或win32_development
產品組態:PrepWSKWorkspace C:\FactoryOSWin32Manufacturing -Product FactoryOS -ProductConfiguration win32_manufacturing
新工作區中的OEMInput.xml包含映射中容器的功能。
自訂您的映射。 請遵循從步驟 5 開始的指示,從 [建立 Factory OS 映射] (build-a-Factory OS-image.md#5-add-drivers) 完成自訂映射。 請參閱 將附屬專案新增至下列容器 ,以瞭解如何使用 [測試內容] 資料夾 將附屬專案新增至容器。
與 Factory OS 中的容器互動
您可以從殼層開機和主控台開機控制 Factory OS 容器並與其互動。
殼層開機
開機進入 Factory OS 殼層時,您可以使用下列專案與容器互動:
- Factory Orchestrator 工作清單,包括特殊的 Factory Orchestrator XML 檔案
- 在裝置上遠端或本機的 Factory Orchestrator 應用程式或 API
- 透過遠端桌面應用程式在本機上啟動容器中的命令提示字元
主控台開機
在主控台開機模式中開機進入 Factory OS 時,您可以使用下列方式與容器互動:
- Factory Orchestrator 工作清單,包括特殊的 Factory Orchestrator XMl 檔案
- 在裝置上遠端或本機的 Factory Orchestrator API
- 遠端處理站 Orchestrator 應用程式
將附屬專案新增至容器
當您使用此產品組態建置 Factory OS 映射時,您可以在映射處理和執行時間期間部署和執行診斷 Win32 應用程式:
-
在映射建立期間新增容器應用程式:在測試內容資料夾中包含名為
Container
的資料夾:-
Container
資料夾中的內容將可在 Factory OS 和容器中使用C:\TestContent\Container
- 資料夾
Container
是容器中唯一的資料夾,其內容會在重新開機後保存。 當您重新開機裝置時,將會移除您在容器中所做的所有其他檔案和登錄變更
-
-
在執行時間期間新增應用程式:如果您有執行中的裝置,且需要將應用程式新增至容器,您可以:
- 使用 Factory Orchestrator 應用程式 或 API,在本機或遠端將檔案複製到容器
- 使用TShell 的
put-device
命令將C:\TestContent\Container
檔案複製到資料夾 - 使用sftp將檔案
C:\TestContent\Container
複製到資料夾
執行 GUI win32 應用程式
如果您有需要 GUI 的 win32 應用程式,請使用 Factory OS 中包含的遠端桌面 UWP 應用程式。 下列指示假設您有執行中的 Factory OS 裝置,且容器已載入 GUI 應用程式:
- 在 Factory Orchestrator 中,移至 [命令提示字元] 索引標籤。
- 核取 [在容器中執行]。
- 按一下出現的 [顯示容器 UI] 按鈕。
- 您現在已連線到裝置上的容器,而且應該會在容器左下角看到最小化的命令提示字元。 您可以最大化,然後使用此命令提示字元來啟動您的應用程式。
返回 Factory OS
您可以透過:
- 按一下 ...在遠端桌面應用程式視窗的頂端中心
- 按 Alt + 索引標籤,直到您看到 Factory Orchestrator 或其他您想要切換的應用程式為止。
如果您不小心關閉命令提示字元視窗
返回 Factory OS:
- 按一下 ...在遠端桌面應用程式視窗的頂端中心
- 按 Alt+Tab 鍵直到您看到 Factory Orchestrator
在處理站協調器中,移至 [命令提示字元] 索引標籤
檢查 [在容器中執行]
在 [命令] 文字方塊中執行下列命令:
RunAsRdUser "c:\windows\system32\cmd.exe` `/C start cmd.exe`
按一下 [Run] \(執行\) 圖示
按一下 [顯示容器 UI] 按鈕,現在會顯示命令提示字元
在容器中執行 win32 應用程式作為 Factory Orchestrator TaskList 的一部分
當您在 Factory Orchestrator 中建立工作時,您可以在建立工作時選取 [ 在容器中執行? ] 核取方塊,將該工作設定為在容器中執行:
您也可以藉由撰寫 FactoryOrchestratorXML 檔案,並將 RunInContainer=「true」 屬性新增至您想要在容器中執行的工作來完成此動作。
- 當您執行 TaskList 時,Factory Orchestrator 會自動偵測容器中執行的工作是否需要 GUI。
- 如果工作需要 GUI,就會自動建立與容器的遠端桌面連線。 建立連線之後,工作就會自動啟動。 關閉程式時,遠端桌面連線會終止,且 TaskList 中的下一個工作會自動啟動。
支援範圍
應用程式類別
並非所有應用程式類別都位於容器支援的範圍內:以下是範圍內內容的廣泛清單,以及處理站 OS 容器中應用程式相容性的範圍不足:
- 範圍內:
- 解壓縮的 Win32 主控台應用程式
- 解壓縮具有有限 UI 的 Win32 應用程式
- 封裝的 Win32 主控台應用程式
- 具有有限 UI 的已封裝 Win32 應用程式
- 範圍不足:
- 需要高規格硬體的應用程式類別,例如專業影片編輯
- 需要 COM (元件物件模型的應用程式) 主機和客體作業系統之間的支援
不支援的情節
不支援某些案例:
區域 | 案例 |
---|---|
媒體傳輸通訊協定 (MTP) |
|
USB 列印 | 印表機支援 |
虛擬化 | 安裝自己的 Hypervisor 的應用程式 |
安裝自己的驅動程式的應用程式 | 安裝及啟動驅動程式的 Win32 應用程式可能會因為容器界限之間的必要互動而意外地運作 |
螢幕擷取 | 嘗試建立主機 OS 螢幕擷取的應用程式 |
需要殼層整合的應用程式 | 需要工作列互動或其他殼層互動的應用程式 |