Active-Directory

使用 GPO 將軟體推送到域電腦

  • December 15, 2020

是否可以將應用程序推送到客戶端 PC 並使用 GPO 安裝?

我目前在託管軟體的域控制器上有一個網路共享,還有一個 GPO 可以在所有連接的 PC 上安裝該軟體。問題是,這實際上是將軟體複製到客戶端上,還是只是從網路共享中執行?

如果僅從網路共享執行它,是否可以將應用程序複製到本地文件系統並使用 GPO 從那里安裝它?

我能夠開始工作的方式是創建兩個新的 GPO:一個用於複製 MSI 和一個Start-Process C:\Path\to\MSI從網路共享執行到客戶端 PC 的 powershell 腳本。

第二個 GPO 立即執行任務以啟動 powershell 並傳遞參數以執行 MSI。

在與包裝專業人士交談後,這種技術似乎是最佳實踐。

我意識到我可能使用 powershell 腳本過度複雜了。您可以設置一個即時任務來執行應用程序,或者使用正則表達式執行一次。

通過 GPO 部署軟體極其有限且不可靠,因為您要部署的軟體必須是 .msi 文件。它不適用於 .exe 或任何其他文件副檔名。

只要 .msi 文件位於您希望安裝該軟體的所有電腦都可以訪問的文件共享上,步驟如下:

注意:這實際上會在電腦上安裝軟體。它將在本地電腦上執行,而不是從文件共享中執行。電腦基本上只是從網路共享中檢索安裝程序文件並將應用程序安裝在機器上。

  1. 創建一個新的組策略對象。
  2. 在電腦配置 > 策略 > 軟體設置下點擊軟體安裝以選擇它。
  3. 右鍵點擊右側視窗的空白部分,然後選擇 New > Package

重要提示:在下一步中要小心。在選擇您的軟體包時,您必須瀏覽到要安裝軟體的電腦可以訪問的文件共享位置。如果您從伺服器的本地 C: 驅動器中選擇它,則網路電腦將無法訪問安裝程序文件,因為您必須使用目標電腦可訪問的網路共享 UNC 路徑 (\SERVER_NAME\share_name\installer_file_name)。

  1. 瀏覽到 UNC 路徑並選擇您的 .msi 安裝程序文件。
  2. 選擇“已分配”並選擇確定。您的安裝程序文件將出現在列表中。

接下來的步驟將取決於您的設置。您可能需要在 GPO 上設置安全過濾權限,以告訴它您希望它安裝在哪些特定電腦上,並修改其他權限設置。完成後,將 GPO 分配給包含應安裝軟體的電腦的 OU。

要進行測試,請轉到應安裝軟體的網路上的電腦,打開 PowerShell 並執行

gpupdate /force /啟動

您應該會收到一條消息,表明某些策略已啟用…等等,等等,等等,然後彈出一個提示電腦將在 1 分鐘內自動重新啟動的消息。當電腦重新啟動時,您可能會在 Windows 載入之前看到旋轉的顫動很長一段時間。這通常是一個好兆頭,表示正在安裝軟體。

不過,通過 GPO 部署並不是最可靠的解決方案。它可能(並且通常確實)失敗的原因有很多。在安裝之前,您可能需要重新啟動電腦幾次。它可能不會安裝幾天或永遠。有時您必須刪除 GPO 並重新創建它才能安裝它。在最壞的情況下,您必須從域中刪除電腦,然後在安裝軟體之前重新加入域。

引用自:https://serverfault.com/questions/1046158