Configuration Manager modifiche alla libreria dei cmdlet per la versione 1810

Si applica a: Configuration Manager (Current Branch)

Nota

Configuration Manager current branch versione 1806 è la linea di base per queste modifiche. Per altre informazioni, vedere Configuration Manager modifiche alla libreria dei cmdlet per la versione 1806.

Modifiche importanti

Nuovi cmdlet

I cmdlet seguenti vengono aggiunti per creare regole dei requisiti per i tipi di distribuzione e le condizioni globali:

  • New-CMGlobalConditionExpression
  • New-CMRegistryAccessControlEntry
  • New-CMRequirementRuleActiveDirectorySiteValue
  • New-CMRequirementRuleBooleanValue
  • New-CMRequirementRuleCMSiteValue
  • New-CMRequirementRuleCommonValue
  • New-CMRequirementRuleDeviceOwnershipValue
  • New-CMRequirementRuleExistential
  • New-CMRequirementruleExpression
  • New-CMRequirementRuleFileAttributeValue
  • New-CMRequirementRuleFilePermissionValue
  • New-CMRequirementRuleFreeDiskSpaceValue
  • New-CMRequirementRuleInputTypeValue
  • New-CMRequirementRuleOperatingSystemLanguageValue
  • New-CMRequirementRuleOperatingSystemValue
  • New-CMRequirementRuleOUValue
  • New-CMRequirementRuleScreenResolutionValue

I cmdlet supportati per Add e Set-CM*DeploymentType hanno aggiunto parametri per GroupDetectionClauses e DetectionClauseConnector.

Esempi

Creare un'espressione semplice con una regola
$rule1 = Get-CMGlobalCondition -Name "Total physical memory" | New-CMRequirementRuleCommonValue -Value1 2048 -RuleOperator GreaterEquals
$myRuleExpression = New-CMRequirementRuleExpression -AddRequirementRule $rule1
$myGC = New-CMGlobalConditionExpression -Name "GCExp" -DeviceType Windows -RootExpression $myRuleExpression
Aggiungere un'espressione di condizione globale complessa
$ruleProc = Get-CMGlobalCondition -Name "Number of processors" | New-CMRequirementRuleCommonValue -Value1 2 -RuleOperator GreaterEquals
$ruleMem1 = Get-CMGlobalCondition -Name "Total physical memory" | New-CMRequirementRuleCommonValue -Value1 2048 -RuleOperator GreaterThan
$ruleMem2 = Get-CMGlobalCondition -Name "Total physical memory" | New-CMRequirementRuleCommonValue -Value1 4096 -RuleOperator LessEquals
$ruleCPUSpeed1 = Get-CMGlobalCondition -Name "CPU Speed" | New-CMRequirementRuleCommonValue -Value1 5120 -RuleOperator LessEquals
$ruleCPUSpeed2 = Get-CMGlobalCondition -Name "CPU Speed" | New-CMRequirementRuleCommonValue -Value1 1024 -RuleOperator GreaterThan
$expressionProc = New-CMRequirementRuleExpression -AddRequirementRule $ruleProc
$expressionMem = New-CMRequirementRuleExpression -AddRequirementRule $ruleMem1, $ruleMem2 -ClauseOperator And
$expressionCPU = New-CMRequirementRuleExpression -AddRequirementRule $ruleCPUSpeed1, $ruleCPUSpeed2 -ClauseOperator And
$myRuleExpression = New-CMRequirementRuleExpression -RootExpression $expressionProc -AddExpression $expressionMem,$expressionCPU -ClauseOperator And -AddAsGroup -GroupOperator Or
$myGC = New-CMGlobalConditionExpression -Name "GCExp" -DeviceType Windows -RootExpression $myRuleExpression
Aggiungere una regola di lingua
$myGC = Get-CMGlobalCondition -Name "Operating System Language" | Where-Object PlatformType -eq 1
$cultureA = [System.Globalization.CultureInfo]::GetCultures([System.Globalization.CultureTypes]::AllCultures) | Where-Object Name -eq "zh"
$cultureB = [System.Globalization.CultureInfo]::GetCultures([System.Globalization.CultureTypes]::AllCultures) | Where-Object Name -eq "zh-CN"
$myRule = $myGC | New-CMRequirementRuleOperatingSystemLanguageValue -RuleOperator NoneOf -Culture $cultureA,$cultureB -IsMobile $False
Set-CMScriptDeploymentType -ApplicationName "myApp" -DeploymentTypeName "myDT" -AddRequirement $myRule
Creare un'espressione semplice con una regola.
$clauseFile1 = New-CMDetectionClauseFile -FileName "abc" -Path "c:\abc" -PropertyType Size -ExpectedValue 1024 -ExpressionOperator IsEquals -Value
$clauseFile2 = New-CMDetectionClauseFile -FileName "abc" -Path "c:\abc" -PropertyType Size -ExpectedValue 2048 -ExpressionOperator IsEquals -Value
$clauseFile3 = New-CMDetectionClauseFile -FileName "abc" -Path "c:\abc" -PropertyType Size -ExpectedValue 4096 -ExpressionOperator IsEquals -Value

Set-CMScriptDeploymentType -ApplicationName "testApp1" -DeploymentTypeName "abc" -AddDetectionClause $clauseFile1,$clauseFile2,$clauseFile3 -DetectionClauseConnector @{"LogicalName"=$clauseFile3.Setting.LogicalName;"Connector"="OR"} -GroupDetectionClauses $clauseFile2.Setting.LogicalName, $clauseFile3.Setting.LogicalName

Cmdlet rimossi

Nessuno

Cmdlet deprecati

Nessuno

Problemi noti

Gli elementi seguenti sono problemi noti relativi alla libreria di cmdlet che non vengono risolti in questa versione.

Get-CMAadConditionalAccessPolicy e Set-CMAadConditionalAccessPolicy

Questi cmdlet richiedono un ambiente PowerShell a 64 bit.

Soluzione alternativa

  • Nessuno

Import-CMSecurityRole

Il cmdlet potrebbe non riuscire con un errore DirectoryNotFoundException durante l'individuazione del file SecuredRoles.xsd.

Soluzione alternativa

  • Chiamare Import-Module sul ConfigurationManager.psd1 file e non sul percorso logico o sul nome del modulo.

Set-CMSoftwareUpdatePoint

Le modifiche apportate a Pianificazione potrebbero non essere visualizzate nella console di Configuration Manager anche se l'oggetto provider SMS sottostante è stato modificato.

Soluzione alternativa

  • Chiudere e riavviare la console Configuration Manager.

Rilevamento e ripristino delle risorse (beta)

Questa versione aggiunge nuovi cmdlet per supportare il rilevamento degli oggetti provider SMS usati dal runtime di PowerShell e per pulire queste risorse quando non sono più necessarie.

  • Disconnect-CMTrackedObject
  • Start-CMObjectTracking
  • Stop-CMObjectTracking

Quando si esegue Start-CMObjectTracking, il runtime di PowerShell tiene traccia degli IResultObject oggetti creati dai cmdlet della libreria di cmdlet. Per i cmdlet che non vengono puliti manualmente con .Dispose(), recuperarli usando Disconnect-CMTrackedObject su un singolo oggetto.

Esempio

# Reclaim a single tracked object
$o | Disconnect-CMTrackedObject

# Reclaim all tracked objects
Disconnect-CMTrackedObject -All

Una volta recuperato, un oggetto non può più essere riutilizzato o passato a un altro cmdlet tramite la pipeline dell'oggetto.

Stop-CMObjectTracking può essere usato per disattivare il rilevamento degli oggetti. Gli oggetti allocati in precedenza rimangono attivi.

Le risorse non reclamate possono causare errori di violazione della quota da parte del provider SMS. Questi problemi di quota si manifestano in genere dall'uso di set di grandi dimensioni di oggetti provider SMS o in ambienti a esecuzione prolungata.

Nota

Questa funzionalità è sperimentale e può essere soggetta a modifiche o rimozione in una versione futura. Si tratta del consenso esplicito e non è abilitato per impostazione predefinita.

Modifiche ai cmdlet

In questa versione sono state apportate le modifiche seguenti ai cmdlet esistenti. Le modifiche possono essere nuove funzionalità, correzioni di bug o deprecazione. Alcune modifiche potrebbero causare un'interruzione. Se si usa una delle aree dei cmdlet o delle funzionalità elencate in questa sezione, esaminare attentamente le modifiche per comprendere in che modo possono influire sull'uso.

Add-CMDistributionPoint

Modifiche non di rilievo

  • Nuovo parametro EnableLedbat per abilitare LEDBAT per un punto di distribuzione

Add-CMIntuneSubscription

Bug corretti

  • Non è possibile impostare CompanyLogoPath o CompanyLogoThemedPath su grafica superiore a 400x100 e 750 KB

Add-CMManagementPoint

Bug corretti

  • Se EnableCloudGateway è $true, può impostare CommunicationType su un valore non supportato di Http

Clear-CMPxeDeployment

Bug corretti

  • Il cmdlet non cancella le distribuzioni PXE

Get-CMDevice

Bug corretti

  • Il cmdlet potrebbe non restituire le proprietà previste per un dispositivo

Get-CMHierarchySetting

Modifiche non di rilievo

  • Il cmdlet restituisce ora le impostazioni dei dati di utilizzo e aggiornamento client

New-CMAntimalwarePolicyDeployment

Bug corretti

  • Il cmdlet consente di specificare una raccolta di utenti come destinazione di distribuzione

New-CMComplianceRuleExistential

Modifiche non di rilievo

  • Il parametro ExpectedValue ora consente numeri negativi

New-CMConfigurationPolicyuDeployment

Bug corretti

  • Parametro PostponeDateTime non disponibile in tutti i set di parametri

New-CMUserDataAndProfileConfigurationItem

Bug corretti

  • Non è possibile usare $false con il parametro DetectSlowLinkDisabled
  • Alcuni parametri non possono essere impostati quando DetectSlowLink è $true

New-CMWirelessProfile

Modifiche non di rilievo

  • È ora possibile usare 'Fast' con il parametro EapType
  • È possibile usare il nuovo parametro RememberUserCredentials per impostare o cancellare le credenziali.

Deprecazioni

  • Il parametro RememberCredentials è stato sostituito da RememberUserCredentials

Set-CMComplianceRuleExistential

Modifiche non di rilievo

  • Il parametro ExpectedValue ora consente numeri negativi

Set-CMDistributionPoint

Modifiche non di rilievo

  • Nuovo parametro EnableLedbat per configurare LEDBAT per un punto di distribuzione

Set-CMHierarchySetting

Modifiche non di rilievo

  • Nuovo parametro TelemetryLevel per la configurazione delle impostazioni dei dati di utilizzo

Set-CMIntuneSubscription

Bug corretti

  • Non è possibile impostare CompanyLogoPath o CompanyLogoThemedPath su grafica superiore a 400x100 e 750 KB

Set-CMManagementPoint

Bug corretti

  • Se EnableCloudGateway è $true, può impostare CommunicationType su un valore non supportato di Http

Set-CMMsiDeploymentType

Bug corretti

  • Il parametro AddDetectionClause cancella la clausola di rilevamento del codice del prodotto MSI esistente in precedenza
  • Il parametro AddRequirement potrebbe non riuscire con "SQL_ERROR"

Modifiche non di rilievo

  • Nuovi parametri GroupDetectionClauses e DetectionClauseConnector per il raggruppamento delle clausole di rilevamento

Set-CMSoftwareUpdatePointComponent

Modifiche non di rilievo

  • Aggiunta di nuovi parametri per configurare la sostituzione di funzionalità e non funzionalità
  • Nuovo parametro ImmediatelyExpireSupersedenceForFeature per scadere immediatamente gli aggiornamenti sostituiti
  • Nuovo parametro WaitForMonthFeature per configurare per quanto tempo scadono gli aggiornamenti sostituiti

Set-CMTSStepJoinDomainWorkgroup

Bug corretti

  • Il parametro UserName non supporta il %VARIABLE% formato

Set-CMTSStepCaptureUserState

Modifiche non di rilievo

  • Il cmdlet avvisa ora quando viene usato AddConfigFile e ModeOption è Standard

Set-CMUserDataAndProfileConfigurationItem

Modifiche non di rilievo

  • Il cmdlet avvisa ora quando vengono usati i parametri SlowLink e SyncMins quando EnableSlowLink è $false

Set-CMWirelessProfile

Modifiche non di rilievo

  • È ora possibile usare 'Fast' con il parametro EapType
  • È possibile usare il nuovo parametro RememberUserCredentials per impostare o cancellare le credenziali.

Deprecazioni

  • Il parametro RememberCredentials è stato sostituito da RememberUserCredentials

Start-CMAntimalwarePolicyDeployment

Bug corretti

  • Il cmdlet consente di specificare una raccolta di utenti come destinazione di distribuzione