SoftPaq Repository

Use this module to initialize a directory as a container for SoftPaqs, which can then be kept up to date with the latest SoftPaqs for a platform or set of platforms.

The module contains the following methods:

Initializing the repository

A directory must be initialized as a repository. This process creates the proper files in the directory that store the repository settings. To undo the initialization or initialize from scratch, simply remove the .repository folder from the directory.

Function Description
Initialize-Repository Initialize a directory as a repository

Configuring the repository

The following cmdlets configure various repository properties, such as error handlers.

Function Description
Get-RepositoryConfiguration Get configuration settings for the current repository
Set-RepositoryConfiguration Configure repository settings

Adding and removing platforms

These functions add or remove platforms from the repository, including any associated filters. Use these to control what SoftPaqs the repository will receive.

Function Description
Add-RepositoryFilter Add a platform filter to the current repository
Remove-RepositoryFilter Remove a previously added filter from the current repository

Getting repository information

This function gets an object with the current repository definition. You can also see similar data by reading the .repository\repository.json file.

Function Description
Get-RepositoryInfo Get an object containing the current repository definition

Synchronizing a repository

This function synchronizes a repository based on the currently defined rules.

Function Description
Invoke-RepositorySync Synchronize a directory by downloading SoftPaqs

Removing orphaned SoftPaqs

This function cleans up unneeded SoftPaqs. It would normally be performed after a successful sync.

Function Description
Invoke-RepositoryCleanup Delete SoftPaqs that are no longer needed

Configuring email failure notifications

When synchronizing a SoftPaq repository on a schedule, it may be desirable to be notified by email if the process fails. Use these methods to configure an SMTP server and define a list of recipients to receive the failure emails.

Function Description
Set-RepositoryNotificationConfiguration Configure a SMTP server for failure notifications
Clear-RepositoryNotificationConfiguration Remove SMTP server information from current repository
Show-RepositoryNotificationConfiguration View current SMTP server configuration
Add-RepositorySyncFailureRecipient Add a recipient to the list of recipients to receive failure notification emails
Remove-RepositorySyncFailureRecipient Remove a recipient from the list of recipients that receive failure notification emails
Test-RepositoryNotificationConfiguration Send a failure notification to test SMTP server configuration and recipients list

All methods above must be executed in the repository directory, and all configuration is per repository. To maintain multiple repositories, simply create additional directories, initialize them, and configure them separately.


When initialized, a directory named ".repository" is created in the repository directory. This directory contains a configuration file (.repository/repository.json) which contains all the configuration for this repository, and a log file (.repository/activity.log) which registers significant actions. Additional files and directories may exist which are used internally by the synchronization process.

The log file may be deleted when no longer needed.