Processing Configurations

When defining a configuration to process it can be either a URI or File Path. In the below example you will notice that you can pass an array of items to the PackageConfig parameter in order to process more than one set of package configurations at once. This gives you the flexibility to compartmentalize your configurations and can help reduce the need to micromanage them as they grow and change over time.

$cChocoExParameters = @{
    PackageConfig = @(
        'https://contoso.com/chocolatey/packages/global-packages.psd1'
        'https://contoso.com/chocolatey/packages/client-packages.psd1')
    SourcesConfig = '\\share.contoso.com\chocolatey\sources\global-sources.psd1'
}

Start-cChocoEx @cChocoExParameters

Duplicate Defined Packages

With the ability to define multiple package files it is important to be aware that duplicate packages will be filtered out and by default all cached configuration files will be purged. The most common scenario are old package configurations that are stale and no longer defined to actively pull down and conflict with new configurations. However there are scenarios where we want to define the same package for different deployment rings. These will not be purged and will process based on the restrictions on the local endpoint.

@{
    'vmware-horizon-client Broad' = @{
        Name           = 'vmware-horizon-client'
        Ensure         = 'Present'
        MinimumVersion = '5.5.1.17575367'
        Ring           = 'Broad'
    }
    'vmware-horizon-client Fast'  = @{
        Name           = 'vmware-horizon-client'
        Ensure         = 'Present'
        MinimumVersion = '8.2.0.17759012'
        Ring           = 'Fast'
    }
    'vmware-horizon-client Pilot' = @{
        Name        = 'vmware-horizon-client'
        Ensure      = 'Present'
        AutoUpgrade = $true
        Ring        = 'Pilot'
    }
}

Last updated

Was this helpful?