[英]Remotely execute Software Center Package using PowerShell
我有一個特定的用例,我需要遠程執行 Windows 10 版本 1809 操作系統升級包,該升級包在 Windows 10 v1709 PC 上的操作系統選項卡下的軟件中心中發布。 我有一個 PowerShell one-liner,當 PC 使用管理員帳戶(與 PC 登錄的帳戶相同)登錄時,它將遠程執行此操作,如下所示:
Invoke-Command -ComputerName Computer001 {(New-Object -ComObject "UIResource.UIResourceMgr").ExecuteProgram("*", "OS_UpGrade", $true)}
當目標 PC 使用我用來運行 PowerShell 終端的相同帳戶登錄時,這非常有效。 但是當 PC (Computer001) 被注銷時,我運行相同的命令,我得到這個錯誤:
"Error HRESULT E_FAIL has been returned from a call to a COM component.
+ CategoryInfo : OperationStopped: (:) [], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
+ PSComputerName : Computer001"
我猜測在 PC 注銷時無法調用 ComObject,這是正確的,有什么辦法可以解決這個問題嗎?
任何指導將不勝感激。
我更深入地查看了此處的文檔。
問題特別在於您正在調用的 COM 對象(如您所料)。
SCCM 的 SDK 特別提到這個 COM 對象是 CM 的 UI。 UIResource.UIResourceMgr。 它還在 SDK 中指出,此特定對象可能難以調用,因為它依賴於用戶上下文。
恐怕您將不得不找到不依賴於調用 UI 資源的執行。
通過 PSExec 運行它可能比調用 SCCM 的 PowerShell 腳本更容易,因為我認為您不能使用 SCCM 本身來遠程調用安裝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.