Configuration Manager 最新分支 1706 的 Cmdlet 連結庫變更
注意事項
System Center 設定最新分支 1702 是這些變更的基準。 如需詳細資訊,請參閱 Configuration Manager 最新分支 1702 的 Cmdlet 連結庫變更。
重要變更
文件庫更新
如需最新的 Cmdlet 連結庫檔,請參閱 ConfigurationManager 模組參考。
系統管理員主控台整合式腳本環境 (ISE) 體驗改善
從系統管理員控制台啟動ISE時產生的腳本已更新,以允許更多自定義和重複使用。
如果先前已產生腳本,則必須從 %APPDATA%\TEMP
移除腳本,才能建立新的腳本。
已移除 Cmdlet
不再支援下列 Cmdlet 並已移除:
- Add-CMComplianceRegistrySetting
- New-CMComplianceRule
已知問題
這些是 Cmdlet 連結庫的已知問題,在此版本中尚未解決。
Get-CMAadConditionalAccessPolicy 和 Set-CMAadConditionalAccessPolicy
這些 Cmdlet 需要 64 位 PowerShell 環境。
因應措施
- 無
New-CMWirelessProfile 和 Set-CMWirelessProfile
如果在64位PowerShell環境中執行,Cmdlet可能會失敗。
因應措施
- 在 32 位 PowerShell 環境中執行這些 Cmdlet。
Add-CMDataWarehouseServicePoint 和 Set-CMDataWarehouseServicePoint
無法將排程設定為執行「每日」
因應措施
- 無
Import-CMSecurityRole
Cmdlet 可能會因為找到檔案 SecuredRoles.xsd
時發生 DirectoryNotFoundException 錯誤而失敗。
因應措施
請確定是 Import-Module
針對 ConfigurationManager.psd1
檔案呼叫 ,而不是邏輯路徑或模組名稱。
New-CMApplicationDeployment 和 New-CMClientSettingDeployment
Cmdlet 允許結合 CollectionName、 Collection 和 CollectionId 參數,因而造成未定義的行為。
因應措施
僅指定 CollectionName、 Collection 或 CollectionId。 請勿合併這些參數。
Remove-CMStateMigrationPoint
拿掉狀態移轉點時,如果網站角色裝載了內容,Cmdlet 可能會因為ArgumentOutOfRangeException而失敗。
因應措施
直接從SMS提供者移除狀態移轉點。
$smp = Get-CMStateMigrationPoint ... # Get the state migration point
$smp.Delete() # Directly delete the object.
新的 Cmdlet
這些是此版本新增的 Cmdlet,可新增新功能或增強現有 Cmdlet 的功能。
組態專案的相容性設定和規則
已新增新的 Cmdlet,以支援建立組態項目的設定和規則。
- Add/Set-CMComplianceSettingActiveDirectory
- Add/Set-CMComplianceSettingAssembly
- Add/Set-CMComplianceSettingDirectory
- Add/Set-CMComplianceSettingFile
- Add/Set-CMComplianceSettingIisMetabase
- Add/Set-CMComplianceSettingRegistryKey
- Add/Set-CMComplianceSettingRegistryKeyValue
- Add/Set-CMComplianceSettingRule
- Add/Set-CMComplianceSettingScript
- Add/Set-CMComplianceSettingSqlQuery
- Add/Set-CMComplianceSettingWqlQuery
- Add/Set-CMComplianceSettingXPathQuery
- Get-CMComplianceRule
- Get-CMComplianceSetting
- New-CMComplianceRuleAssembly
- New-CMComplianceRuleExistential
- New-CMComplianceRuleFileFolderAttribute
- New-CMComplianceRuleFileFolderDate
- New-CMComplianceRuleFileFolderPermission
- New-CMComplianceRuleFileFolderSimple
- New-CMComplianceRuleFileFolderSize
- New-CMComplianceRuleRegistryKeyPermission
- New-CMComplianceRuleValue
- New-CMComplianceRuleVersion
- Remove-CMComplianceRule
- Remove-CMComplianceSetting
範例 1:建立沒有規則的登錄機碼值設定
# Creates a setting looking for HKLM\Software\Microsoft\Windows NT\CurrentVersion:ReleaseId
$ci | Add-CMComplianceSettingRegistryKeyValue -SettingName "ReleaseId no rule" -DataType String -Hive LocalMachine -KeyName "SOFTWARE\Microsoft\Windows NT\CurrentVersion" -ValueName "ReleaseId" -NoRule
範例 2:使用存在規則建立登錄機碼值設定
# Creates a setting requiring the HKLM\Software\Microsoft\WindowsNT\CurrentVersion:ReleaseId registry key to exist
$ci | Add-CMComplianceSettingRegistryKeyValue -SettingName "ReleaseId must exist" -DataType String -Hive LocalMachine -KeyName "SOFTWARE\Microsoft\Windows NT\CurrentVersion" -ValueName "ReleaseId" -ExistentialRule -Existence MustExist
範例 3:使用值規則建立登錄機碼值設定
# Creates a setting requiring the HKLM\Software\Microsoft\WindowsNT\CurrentVersion:ReleaseId registry key to be equal to "1703"
$ci | Add-CMComplianceSettingRegistryKeyValue -SettingName "ReleaseId must be 1703" -DataType String -Hive LocalMachine -KeyName "SOFTWARE\Microsoft\Windows NT\CurrentVersion" -ValueName "ReleaseId" -ValueRule -ExpressionOperator IsEqual -ExpectedValue "1703"
範例 4:建立需要檔案設定特定屬性的檔案規則
$ci | Add-CMComplianceSettingFile -Path "C:\" -FileName "hiberfile.sys" -NoRule -SettingName "hiberfile.sys must have system attribute"
$setting = $ci | Get-CMComplianceSetting -SettingName "hiberfile.sys must have system attribute" # Get the SDK setting object
$rule = $setting | New-CMComplianceRuleFileFolderAttribute -RuleName "hiberfile.sys must be system" -System $true # Create the rule
$ci | Add-CMComplianceSettingRule $rule # Bind the rule to the CI
更新和服務
已新增新的 Cmdlet,以支援在 Configuration Manager 中自動更新和服務。
- Enable-CMSiteFeature
- Get-CMSiteFeature
- Get-CMSiteUpdate
- Get-CMSiteUpdateHistory
- Get-CMSiteUpdateInstallStatus
- Install-CMSiteUpdate
- Invoke-CMSitePromotePreproductionClient
- Invoke-CMSiteUpdateCheck
- Invoke-CMSiteUpdateDownload
- Invoke-CMSiteUpdatePrerequisiteCheck
範例 1:下載更新並監視其狀態
# Get the update object for the 1706 TP and invoke a download
$update = Get-CMSiteUpdate -Name "Configuration Manager Technical Preview 1706" -Fast
$update | Invoke-CMSiteUpdateDownload
``` powershell
# Now monitor the download status
``` powershell
while($true) {
cls
$update | Get-CMSiteUpdateInstallStatus -Step Download | select orderid, progress, description | ft
sleep 5
}
範例 2:安裝更新並監視其狀態
$update = Get-CMSiteUpdate -Name "Configuration Manager Technical Preview 1706" -Fast
$update | Install-CMSiteUpdate -IgnorePrerequisiteWarning -Force
while($true) {
cls
$update | Get-CMSiteUpdateInstallStatus -Step All -Complete | select orderid, progress, description -Last 10 | ft
sleep 5
}
部署類型的增強型偵測方法
已新增新的 Cmdlet,以支援將增強的偵測方法新增至 Windows Installer (MSI) 、腳本和 Mac 部署類型。
- Windows Installer & 腳本偵測子句
- New-CMDetectionClauseDirectory
- New-CMDetectionClauseFile
- New-CMDetectionClauseRegistryKey
- New-CMDetectionClauseRegistryKeyValue
- New-CMDetectionClauseWindowsInstaller
- Mac 偵測子句
- New-CMDetectionClauseMacBundle
- New-CMDetectionClauseMacPackage
範例:新增需要特定產品標識碼和目錄名稱的偵測子句,以供 Windows Installer 部署類型使用。
$clause1 = New-CMDetectionClauseWindowsInstaller -ProductCode $guid [Value -ExpressionOperator IsEquals -ExpectedValue "1.1.1.1" # Do a version check
$clause2 = New-CMDetectionClauseDirectory -DirectoryName "mymsi" -Path "C:\" -Existence # c:\mymsi should exist
$app | Add-CMMsiDeploymentType -ContentLocation "\\myserver\mypath\mymsi.msi" -Force -AddDetectionClause ($clause1, $clause2)
附註
目前不支援就地修改偵測子句。
目前不支援將偵測子句分組或取消群組。
工作順序
已新增新的 Cmdlet,以支援修改工作順序步驟和群組。
- 工作順序群組和步驟
- Get/New/Remove/Set-CMTaskSequenceGroup
- Add/Get/Remove-CMTaskSequenceStep
- 支援取得和新增動詞 (的工作順序條件)
- CMTaskSequenceStepConditionIfStatement
- CMTaskSequenceStepConditionQueryWmi
- CMTaskSequenceStepConditionRegistry
- CMTaskSequenceStepConditionFile
- CMTaskSequenceStepConditionFolder
- CMTaskSequenceStepConditionOperatingSystem
- CMTaskSequenceStepConditionSoftware
- 支援 (Get、New、Remove 和 Set 動詞命令的工作順序命令)
- CMTaskSequenceStepRunCommandLine
- CMTaskSequenceStepInstallApplication
- CMTaskSequenceStepInstallSoftware
- CMTaskSequenceStepInstallUpdate
- CMTaskSequenceStepPartitionDisk
- CMTaskSequenceStepReboot
- CMTaskSequenceStepRunPowerShellScript
- CMTaskSequenceStepSetupWindowsAndConfigMgr
- CMTaskSequenceStepSetVariable
- 工作順序支援命令
- New-CMTaskSequencePartitionSetting
範例:建立執行兩個PowerShell腳本的自定義工作順序
$step1 = New-CMTaskSequenceStepRunPowerShellScript -Name "Run script 1" -PackageID $PackageId -ScriptName "script1.ps1" -ExecutionPolicy Bypass
$step2 = New-CMTaskSequenceStepRunPowerShellScript -Name "Run script 2" -PackageID $PackageId -ScriptName "script2.ps1" -ExecutionPolicy Bypass
$ts = New-CMTaskSequence -Name "Run scripts" -CustomTaskSequence
$ts | Add-CMTaskSequenceStep -Step ($step1, $step2)
注意事項
要在未來版本中新增的其他工作順序命令。
iOS 大量註冊
已新增 Cmdlet 以支援 iOS 大量註冊案例。
- Get-CMCorpOwnedDevice
- Get-CMIosEnrollmentProfile
- New-CMIosEnrollmentProfile
- Remove-CMCorpOwnedDevice
- Remove-CMIosEnrollmentProfile
- Set-CMIosEnrollmentProfileAssignment
無線配置檔
已新增 Cmdlet 以支援無線配置檔。
- Get-CMWirelessProfile
- New-CMWirelessProfile
- Remove-CMWirelessProfile
- Set-CMWirelessProfile
部署 Cmdlet
已新增 Cmdlet 以支援其他部署案例。
- New-CMClientSettingsDeployment
- 取代
Start-CMClientSettingsDeployment
- 取代
- New-CMApplicationDeploymentSimulation
- 取代
Start-CMApplicationDeploymentSimulation
- 取代
資源追蹤和復原 (BETA)
已新增新的 Cmdlet 來支援追蹤 PowerShell 執行時間所使用的 SMS 提供者物件,並在不再需要這些資源時加以清除。
- Disconnect-CMTrackedObject
- Start-CMObjectTracking
- Stop-CMObjectTracking
執行 時 Start-CMObjectTracking
,PowerShell 運行時間會追蹤 IResultObject
Cmdlet 連結庫 Cmdlet 所建立的物件。 您可以針對個別物件使用 Disconnect-CMTrackedObject
來回收未手動清除.Dispose()
的 Cmdlet (範例: $o | Disconnect-CMTrackedObject
) ,或Disconnect-CMTrackedObject -All
可以使用 回收所有追蹤的物件。
請注意,回收對象之後,就無法再透過物件管線重複使用或傳遞至另一個 Cmdlet。
Stop-CMObjectTracking
可用來關閉物件追蹤。 請注意,先前配置的物件會保持作用中狀態。
未宣告的資源可能會導致SMS提供者引發配額違規錯誤。 這些問題通常來自於使用非常大型的SMS提供者物件集合,或在非常長的執行環境中
附註
這是實驗性功能,未來版本可能會變更或移除。 此功能已加入加入,且預設不會啟用。
Get-CMClientHealthSummary
此 Cmdlet 可用來取得具有選擇性日期範圍之集合的用戶端健康情況資訊。
範例:從 2017 年 1 月開始取得「所有系統」的用戶端健康情況。
Get-CMCollection -Name "All Systems" | Get-CMClientHealthSummary -StartDate "2017/01/01"
Get-CMSoftwareUpdateSyncStatus
此 Cmdlet 可用來取得與 Windows Update 同步處理的狀態。
Invoke-CMContentRedistribution
此 Cmdlet 可用來重新發佈已部署至發佈點的內容。 這支援應用程式、套件、開機映射、軟體更新、驅動程式、映射、工作順序和操作系統內容發佈。
範例:將套件轉散發至發佈點
Get-CMPackage -Name Contoso | Invoke-CMContentRedistribution -DistributionPointName myserver.contoso.com
Invoke-CMDeploymentSummarization
此 Cmdlet 可用來立即執行部署摘要。
Stop-CMMigrationSource
此 Cmdlet 可用來阻止網站移轉發生。
Sync-CMMigrationSource
必須用來繼續移轉。
Cmdlet 變更
已對此版本的現有 Cmdlet 進行下列變更。 變更可能是新功能、錯誤修正或取代,而且可能會中斷。 如果您使用本節所列的其中一個 Cmdlet 或功能區域,請仔細檢閱變更,以了解這些變更可能會對您的使用造成何種影響。
Add-CMApplicationCatalogWebsitePoint
已修正的錯誤
如果為 ApplicationWebServicePointServer 指定的值不包含預期的網站角色,Cmdlet 可能會失敗,並出現 KeyNotFoundException 錯誤。
非中斷性變更
已新增 ApplicationWebServicePointServer ,以允許使用 的 Get-CMApplicatinWebServicePoint
輸出來定義 Web 服務點。 無法與 ApplicationWebServicePointServerName 結合。
Add-CMAssetIntelligenceSynchronizationPoint
已修正的錯誤
如果指定了無效的 CertificatePath ,可能會不正確地建立角色。 另請參閱: Remove-CMAssetIntelligenceSynchronizationPoint。
Add-CMDataWarehouseServicePoint
重大變更
DaysOfWeek 值從整數變更為 DataWarehouseDaysOfWeek
列舉值。
已修正的錯誤
DataWarehouseDatabaseServerName 不會驗證 FQDN 主機名小於 16 個字元。
非中斷性變更
已新增DataWarehouseInstanceName 參數,以支援指定 SQL Server 實例。
Add-CMMacDeploymentType
非中斷性變更
已 新增 AddDetectionClause 參數,以支援將偵測子句新增至部署類型。 如需詳細資訊,請參閱 增強型偵測方法一節 。
Add-CMMsiDeploymentType
非中斷性變更
已 新增 AddDetectionClause 參數,以支援將偵測子句新增至部署類型。 如需詳細資訊,請參閱 增強型偵測方法一節 。
已新增 RebootBehavior 參數,以允許定義重新啟動行為。
Add-CMScriptDeploymentType
非中斷性變更
已 新增 AddDetectionClause 參數,以支援將偵測子句新增至部署類型。 如需詳細資訊,請參閱 增強型偵測方法一節 。
已新增 RebootBehavior 參數,以允許定義重新啟動行為。
Add-CMWindowsPhoneStoreDeploymentType
已修正的錯誤
如果指定了 windowsphone.com URL,則可能會建立無效的部署類型。
Approve-CMApprovalRequest 和 Deny-CMApprovalRequest
非中斷性變更
Cmdlet 現在支援使用與要求相關聯的 GUID 來核准或拒絕核准要求。
Get-CMAlert
已修正的錯誤
Cmdlet 不會擷取與 Endpoint Protection 或用戶端健康情況相關的警示類型。
Get-CMApprovalRequest
非中斷性變更
已新增 CurrentState 參數,以允許依核准狀態篩選核准要求。
Get-CMMaintenanceWindow
已修正的錯誤
如果網站沒有定義維護時段,Cmdlet 可能會因為 NullReferenceException 而失敗。
Import-CMWirelessProfileConfigurationItem
已修正的錯誤
Path 參數不會驗證輸入是否為有效的 UNC 路徑。
Import-CMClientCertificatePfx
非中斷性變更
已新增 ForSmimeEncryption 參數,表示 Microsoft Intune 可以使用憑證進行裝置加密。
Import-CMDriver
已修正的錯誤
Path 參數不會驗證輸入是否為有效的 UNC 路徑。
Import-CMTaskSequence
已修正的錯誤
ImportFilePath 參數不會驗證輸入是否為有效的 UNC 路徑。
Lock-CMObject
已修正的錯誤
如果針對不支持鎖定的物件叫用 Cmdlet,則可能會因為 NullReferenceException 而失敗。
New-CMADGroupDiscoveryScope
已修正的錯誤
GroupDN 參數不會驗證輸入是否為有效的辨別名稱。
New-CMAlertSubscription
已修正的錯誤
如果為 EmailAddress 指定一個以上的值,則訂用帳戶設定不正確。
New-CMApplicationDeployment
非中斷性變更
已新增 EnableSoftDeadline 參數來設定延遲強制執行。
New-CMCertificateProfileScep
非中斷性變更
KeySize 參數現在允許位元組值 4096
。
New-CMTaskSequence
非中斷性變更
已新增 TimeZone 參數,允許在使用 InstallOperatingSystemImage 時指定時區資訊。 您可以使用 Get-TimeZone
Cmdlet 來指定時區。
New-CMSoftwareUpdateAutoDeploymentRule
已修正的錯誤
如果指定 Language ,則可能會建立無效的自動部署規則。
如果 [位置 ] 不存在,則可能會建立無效的自動部署規則。
Remove-CMAssetIntelligenceSynchronizationPoint
已修正的錯誤
如果移除設定不正確的 Asset Intelligence 同步處理點角色,Cmdlet 可能會因為 ArgumentNullException 而失敗。
Remove-CMMaintenanceWindow
已修正的錯誤
WhatIf 或 Confirm 可能會導致 Cmdlet 傳回 ItemNotFoundException 錯誤。
Remove-CMUpdateGroupDeployment
已修正的錯誤
Cmdlet 可能無法移除具有 ItemNotFoundException 錯誤的有效部署。
Remove-CMUserCollectionDirectMembershipRule
非中斷性變更
ResourceName 參數現在支援通配符值。
Set-CMAlertSubscription
取代
AddEmailAddress 和 RemoveEmailAddress 已取代 EmailAddress 參數
非中斷性變更
已 新增 AddEmailAddress 參數,以允許就地修改電子郵件位址。 無法與 EmailAddress 結合。
已新增 RemoveEmailAddress 參數,以允許就地移除電子郵件位址。 無法與 EmailAddress 結合。
Set-CMApplicationDeployment
非中斷性變更
已新增 EnableSoftDeadline 參數來設定延遲強制執行。
Set-CMConfigurationPolicyDeployment
已修正的錯誤
Cmdlet 可能無法部署遠端連線配置檔。
非中斷性變更
已新增 RemoteConnectionProfileName 和 RemoteConnectionProfileId 參數,以允許依名稱或標識碼部署遠端連線配置檔。
Set-CMDataWarehouseServicePoint
重大變更
DaysOfWeek 值從整數變更為 DataWarehouseDaysOfWeek
列舉值。
已修正的錯誤
未使用的參數可能會在執行 Cmdlet 時,將值重設為預設值。
DataWarehouseDatabaseServerName 不會驗證 FQDN 主機名小於 16 個字元。
非中斷性變更
已新增DataWarehouseInstanceName 參數,以支援指定 SQL Server 實例。
Set-CMEmailNotificationComponent
已修正的錯誤
如果指定 UseSsl 但未指定 Port 的值,則可能未正確設定 SMTP 連接埠。
Set-CMHierarchySetting
已修正的錯誤
Cmdlet 可讓您將排除集合設定為內建集合 (例如所有系統) 。
非中斷性變更
已新增 EnablePrereleaseFeature 參數,以支援啟用發行前版本功能。 這是一次性變更,除非使用 Force ,否則會提示您確認。 如需詳細資訊,請參閱 更新 & 服務 。
Set-CMMacDeploymentType
非中斷性變更
已 新增 AddDetectionClause 參數,以支援將偵測子句新增至部署類型。 如需詳細資訊,請參閱 增強型偵測方法一節 。
已新增 RemoveDetectionClause 參數,以支援從部署類型移除偵測子句。 如需詳細資訊,請參閱 增強型偵測方法一節 。
Set-CMMsiDeploymentType
非中斷性變更
已 新增 AddDetectionClause 參數,以支援將偵測子句新增至部署類型。 如需詳細資訊,請參閱 增強型偵測方法一節 。
已新增 RemoveDetectionClause 參數,以支援從部署類型移除偵測子句。 如需詳細資訊,請參閱 增強型偵測方法一節 。
已新增 RebootBehavior 參數,以允許定義重新啟動行為。
Set-CMProgram
已修正的錯誤
ProgramRunType 變更可能不會套用至指定的程式。
Set-CMScriptDeploymentType
非中斷性變更
已 新增 AddDetectionClause 參數,以支援將偵測子句新增至部署類型。 如需詳細資訊,請參閱 增強型偵測方法一節 。
已新增 RemoveDetectionClause 參數,以支援從部署類型移除偵測子句。 如需詳細資訊,請參閱 增強型偵測方法一節 。
已新增 RebootBehavior 參數,以允許定義重新啟動行為。
Set-CMSiteMaintenanceTask
已修正的錯誤
無法針對與月臺備份相關的工作啟用警示。
Set-CMSoftwareInventory
重大變更
Tag1Id、 Tag2Id 和 Tag3Id 參數現在會執行驗證,以確保使用正確的格式。
非中斷性變更
已新增 PassThru 參數支援。
已修正的錯誤
指定無效的 Tag2Id 值可能會移除原本指定的標記。
Set-CMSoftwareUpdateAutoDeploymentRule
已修正的錯誤
如果 [位置 ] 不存在,則可能會建立無效的自動部署規則。
Set-CMSoftwareUpdatePointComponent
非中斷性變更
已新增 ContentFileOption 參數來設定 Windows 10 更新行為。
Set-CMWindowsPhoneStoreDeploymentType
已修正的錯誤
如果指定了 windowsphone.com URL,則可能會建立無效的部署類型。