文件
-
建立應用程式 - Configuration Manager
建立具有部署類型、偵測方法和安裝軟體需求的應用程式。
-
支援搭配 Configuration Manager 使用舊版套件和程式的部署。
-
修改及取代應用程式 - Configuration Manager
瞭解如何使用Configuration Manager應用程式版本並取代應用程式。
適用於:Configuration Manager (目前的分支)
Configuration Manager 具有執行 PowerShell 腳本的整合功能。 PowerShell 的優點是建立複雜、自動化的腳本,以瞭解並與較大的社群共用。 這些腳本可簡化建置自定義工具來管理軟體,並可讓您快速完成一般工作,讓您更輕鬆且更一致地完成大型工作。
注意
在 2006 版和更早版本中,Configuration Manager 預設不會啟用此選擇性功能。 您必須先啟用此功能,才能使用它。 如需詳細資訊,請 參閱從更新啟用選擇性功能。
透過 Configuration Manager 中的這項整合,您可以使用執行腳本功能來執行下列動作:
警告
如需 Configuration Manager 安全性角色的詳細資訊:
執行腳本
的安全性範圍 執行腳本
的安全性角色以角色為基礎的系統管理基本概念。
執行文稿目前支援:
警告
請注意,使用參數時,它會開啟介面區,以降低潛在的PowerShell插入式攻擊風險。 有各種方法可以緩解和解決,例如使用正則表達式來驗證參數輸入或使用預先定義的參數。 常見的最佳做法是不要在PowerShell腳本中包含秘密, (不包含密碼等 ) 。 深入瞭解 PowerShell 腳本安全性
執行文本會使用 腳本作者 和 腳本核准者 的概念作為腳本實作和執行的個別角色。 將作者和核准者角色分開,可讓您對執行腳本的強大工具進行重要的程序檢查。 另外還有 一個腳本執行者 角色可允許執行腳本,但不允許建立或核准腳本。 請參閱 建立腳本的安全性角色。
根據預設,用戶無法核准他們所撰寫的腳本。 因為腳本功能強大、多功能,而且可能部署到許多裝置,所以您可以在撰寫腳本的人員與核准腳本的人員之間分隔角色。 這些角色可提供額外的安全性層級,防止在沒有監督的情況下執行腳本。 您可以關閉次要核准,以方便測試。
腳本必須經過 腳本核准者 角色核准,才能執行。 若要核准文稿:
這項核准主要用於腳本開發的測試階段。
重要
最佳做法是,您不應該允許腳本作者核准自己的腳本。 它應該只允許在實驗室設定中使用。 請仔細考慮在生產環境中變更此設定的潛在影響。
執行文本會使用安全性範圍,這是 Configuration Manager 的現有功能,透過指派代表使用者群組的標記來控制腳本的撰寫和執行。 如需使用安全性範圍的詳細資訊,請參閱設定 Configuration Manager 的角色型系統管理。
預設不會在 Configuration Manager 中建立用於執行腳本的三個安全性角色。 若要建立腳本執行器、腳本作者和腳本核准者角色,請遵循概述的步驟。
角色名稱:文稿執行器
類別 | 權限 | 狀態 |
---|---|---|
集合 | 執行指令碼 | 是 |
網站 | 讀取 | 是 |
SMS 腳本 | 讀取 | 是 |
角色名稱:文稿作者
類別 | 權限 | 狀態 |
---|---|---|
集合 | 執行指令碼 | 否 |
網站 | 讀取 | 是 |
SMS 腳本 | 建立 | 是 |
SMS 腳本 | 讀取 | 是 |
SMS 腳本 | 刪除 | 是 |
SMS 腳本 | 修改 | 是 |
角色名稱:文本核准者
類別 | 權限 | 狀態 |
---|---|---|
集合 | 執行指令碼 | 否 |
網站 | 讀取 | 是 |
SMS 腳本 | 讀取 | 是 |
SMS 腳本 | 核准 | 是 |
SMS 腳本 | 修改 | 是 |
文本作者角色的 SMS 腳本許可權範例
從 2403 版開始,您可以使用資料夾來組織腳本。 這項變更可讓您更妥善地分類和管理腳本。
開啟 Configuration Manager 主控台,然後移至 [軟體連結庫] 工作區。 從功能區或按鼠右鍵功能表的 [腳稿] 中,從下列選項中選取:
重要
使用執行文稿功能時,請避免編寫裝置重新啟動腳本或重新啟動 Configuration Manager 代理程式。 這樣做可能會導致連續重新啟動狀態。 如有需要,用戶端通知功能有增強功能可讓您重新啟動裝置。 暫 止的重新啟動數據行 可協助識別需要重新啟動的裝置。
將參數新增至腳本可為您的工作提供更高的彈性。 您最多可以包含10個參數。 下列概述執行腳本功能的目前功能,以及的腳本參數; 字串、 整數 數據類型。 清單 預設值也可供使用。 如果您的文稿有不支援的數據類型,您會收到警告。
在 [ 建立腳本 ] 對話框中,按兩下 [腳稿 ] 底下的 [ 腳本參數]。
每個腳本的參數都有自己的對話框,可新增進一步的詳細數據和驗證。 如果腳本中有預設參數,則會在參數 UI 中列舉它,而且您可以加以設定。 Configuration Manager 不會覆寫預設值,因為它永遠不會直接修改腳本。 您可以將此視為UI中提供「預先填入的建議值」,但 Configuration Manager 不會在運行時間提供「預設」值的存取權。 您可以編輯文稿以取得正確的預設值,以解決此問題。
重要
參數值不能包含單引號。
有一個已知問題,其中包含 或 以單引弧括住的參數值無法正確地傳遞至腳本。 指定包含文稿內空格的預設參數值時,請改用雙引號。 在建立或執行 腳本期間指定預設參數值時,不論值是否包含空格,都不需要以雙引號或單引號括住預設值。
腳本中的每個參數都有 [ 腳本參數屬性 ] 對話框,可讓您新增該參數的驗證。 新增驗證之後,如果您輸入的參數值不符合其驗證,您應該會收到錯誤。
在此範例中,您可以設定字串參數 FirstName 的屬性。
[ 腳本參數屬性 ] 對話框的 [驗證] 區段包含下列字段供您使用:
正則表達式是一種精簡的程序設計形式,可針對編碼驗證來檢查字元字串。 例如,您可以將 放在 [^A-Z]
RegEx 欄位中,以檢查 FirstName 欄位中是否有大寫字母字元。
.NET Framework 支援這個對話框的正規表達式處理。 如需使用正則表達式的指引,請參閱 .NET 正則表達 式和 正則表達式語言。
以下幾個範例說明您可能想要搭配這項功能使用的腳本。
此文本會根據您的命名輸入,在資料夾內建立新的資料夾和檔案。
Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)
New-Item $FolderName -type directory
New-Item $FileName -type file
此文稿會使用 WMI 來查詢電腦的作系統版本。
Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption
您可以 編輯 或 複製 與執行文稿功能搭配使用的現有PowerShell 腳本 。 現在直接編輯文本,而不是重新建立您需要變更的腳本。 這兩個動作都使用與建立新腳本時相同的精靈體驗。 當您編輯或複製文本時,Configuration Manager 不會保存核准狀態。
提示
請勿編輯正在用戶端上執行的腳本。 它們不會完成執行原始文本,而且您可能無法從這些用戶端取得預期的結果。
腳本核准之後,就可以針對單一裝置或集合執行。 一旦開始執行腳本,它會透過在一小時內逾時的高優先順序系統快速啟動。 接著會使用狀態消息系統傳回腳本的結果。
若要選取文稿的目標集合:
重要
例如,如果腳本未執行,因為目標裝置在一小時期間關閉,您必須再次執行。
從最新分支版本 2309 Configuration Manager 開始,您現在可以使用 UTC 排程腳本的運行時間。
在集合上排程文稿執行:
在 Configuration Manager 控制台中,按兩下 [資產與合規性]。
在 [資產與兼容性] 工作區中,按兩下 [ 裝置集合]。
在 [ 裝置集合] 清單中 ,按下您要排程腳本的裝置集合。
選取您選擇的集合,按兩下 [ 執行腳稿]。
在 [ 排程] 頁面上,排程要在複選框執行的腳本,並指定 [以 UTC 排程時間]。
確認 摘要頁面上顯示的詳細數據。
按 [下一步],然後完成精靈。
注意
每 5 分鐘最多會處理 25 個排程腳本。
腳本會在目標用戶端 (的) 上執行為 系統 或 計算機 帳戶。 此帳戶具有有限的網路存取權。 腳本對遠端系統和位置的任何存取都必須據以布建。
在裝置集合上起始執行腳本之後,請使用下列程式來監視作業。 您可以在腳本執行時即時監視腳本,並稍後返回給定執行腳本執行的狀態和結果。 文本狀態數據會在 刪除過時用戶端作業維護 工作或刪除文稿時清除。
在 Configuration Manager 控制台中,按兩下 [監視]。
在 [ 監視] 工作區中,按兩下 [腳稿狀態]。
在 [腳本狀態] 清單中,您會檢視您在用戶端裝置上執行之每個腳本的結果。 0 的腳本結束代碼通常表示腳本已成功執行。
在 Configuration Manager 控制台中,按兩下 [監視]。
在 [監視] 工作區中,按兩下 [ 排程腳本] 節點。
新的數據列會顯示在 排程腳本清單中。
確認已在排程文本清單中顯示新的數據列。 狀態數據行 的值應該是 Scheduled。 ClientOperationId 數據行應該是空白的。 確認文本名稱、排程時間等其他數據行具有適當的值。
在 [排程時間] 之後,重新整理 [ 排程腳本] 節點 。 狀態數據行應該具有 成功起始的用戶端作業值。 ClientOperationId 數據行應該具有整數值。
在 [監視] 工作區中,按兩下 [腳稿狀態] 節點。確認清單中已顯示新的數據列,且 ClientOperationId 等於 [ 排程腳本 ] 節點中的 ClientOperationId。
按兩下 [ 檢視狀態 ],並確定腳本輸出會顯示。
使用 JSON 格式化的用戶端傳回腳本輸出,方法是將腳本的結果傳送至 ConvertTo-Json Cmdlet 。 JSON 格式會一致地傳回可讀取的腳本輸出。 對於未傳回物件做為輸出的腳本,ConvertTo-Json Cmdlet 會將輸出轉換成用戶端傳回的簡單字串,而不是 JSON。
取得未知結果或客戶端離線的腳本不會顯示在圖表或數據集中。
避免傳回大型腳本輸出,因為它被截斷為 4 KB。
將列舉物件轉換成腳本中的字串值,以便以 JSON 格式正確顯示。
您可以檢視原始或結構化 JSON 格式的詳細文稿輸出。 此格式設定可讓輸出更容易閱讀和分析。 如果腳本傳回有效的 JSON 格式文字,或輸出可以使用 ConvertTo-Json PowerShell Cmdlet 轉換成 JSON,則請將詳細輸出檢視為 JSON 輸出 或 原始輸出。 否則,唯一的選項是 [腳本輸出]。
命令: $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 16299 551
命令: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption
Microsoft Windows 10 Enterprise
在用戶端上,預設為 C:\Windows\CCM\logs:
在 MP 上,預設為 C:\SMS_CCM\Logs:
在月台伺服器上,默認位於 C:\Program Files\Configuration Manager\Logs:
您可以使用下列 PowerShell Cmdlet 將其中一些工作自動化:
文件
建立應用程式 - Configuration Manager
建立具有部署類型、偵測方法和安裝軟體需求的應用程式。
支援搭配 Configuration Manager 使用舊版套件和程式的部署。
修改及取代應用程式 - Configuration Manager
瞭解如何使用Configuration Manager應用程式版本並取代應用程式。
訓練
認證
Microsoft 365 Certified: Endpoint Administrator Associate - Certifications
使用現代化管理、共同管理方法和 Microsoft Intune 整合的基本元素,規劃並執行端點部署策略。