sccm2012

Si dessous une liste de fonction PowerShell pour activer ou désactiver les Updates incrémentales d’une collection, ainsi qu’un script permettant de le faire à partir d’un fichier CSV.

Activation via ID de collection

Enable-IncrementalUpdates -CollectionID PRI0000C

Activation via Nom de collection

Enable-IncrementalUpdates –CollectionName "CU Deployment"

Désactivation via ID de collection
Disable-IncrementalUpdates -CollectionID PRI0000C

Désactivation via Nom de collection

Disable-IncrementalUpdates –CollectionName "CU Deployment"

Vous pouvez aussi utiliser un paramètre optionnel pour spécifier le nom du serveur et ainsi exécuté à distance vos commande.

Enable-IncrementalUpdates -CollectionID PRI0000C –Server PRI

Bien sûr vous pouvez aussi faire le travail avec une entré csv :

Import-CSV -Path .\collections.csv | % {Enable-IncrementalUpdates -CollectionName $_.Collection}

Avec le code suivant en fonction :

function Disable-IncrementalUpdates {

 [CmdletBinding(DefaultParameterSetName="CollectionID")]  
    Param
    (
    [Parameter(Mandatory=$true,ParameterSetName="collectionID", Position=0)]
    [String]$CollectionID,
    [Parameter(Mandatory=$true,ParameterSetName="collectionName", Position=0)]
    [String]$CollectionName,
    [Parameter(Mandatory=$false,ParameterSetName="collectionName", Position=1)]
    [Parameter(Mandatory=$false,ParameterSetName="collectionID", Position=1)]
    [String]$Server
    )

if(!$server){ $server = '.'}
$siteCode = @(Get-WmiObject -Namespace root\sms -Class SMS_ProviderLocation -ComputerName $server)[0].SiteCode
gwmi sms_collection -ComputerName $server -Namespace root\sms\site_$siteCode -Filter "CollectionID = '$collectionID' or Name = '$collectionName'" | % {
$collection = [wmi] $_.__Path 
If($collection.RefreshType -eq 4) {$collection.RefreshType = 1}
If($collection.RefreshType -eq 6) {$Collection.RefreshType = 2}
$collection.Put() | Out-Null} 
}

function Enable-IncrementalUpdates {

 [CmdletBinding(DefaultParameterSetName="CollectionID")]  
    Param
    (
    [Parameter(Mandatory=$true,ParameterSetName="collectionID", Position=0)]
    [String]$CollectionID,
    [Parameter(Mandatory=$true,ParameterSetName="collectionName", Position=0)]
    [String]$CollectionName,
    [Parameter(Mandatory=$false,ParameterSetName="collectionName", Position=1)]
    [Parameter(Mandatory=$false,ParameterSetName="collectionID", Position=1)]
    [String]$Server
    )

if(!$server){ $server = '.'}
$siteCode = @(Get-WmiObject -Namespace root\sms -Class SMS_ProviderLocation -ComputerName $server)[0].SiteCode
gwmi sms_collection -ComputerName $server -Namespace root\sms\site_$siteCode -Filter "CollectionID = '$collectionID' or Name = '$collectionName'" | % {
$collection = [wmi] $_.__Path 
If($collection.RefreshType -eq 1) {$collection.RefreshType = 4}
If($collection.RefreshType -eq 2) {$Collection.RefreshType = 6}
$collection.Put() | Out-Null } 
}

 

Article d’origine : ICI