Change log


  • Update VcRedist 2019 to 14.28.29325.2

  • Fix an issue where Save-VcRedist was not returning downloaded VcRedists details to the pipeline

  • Adds private function Get-DigitalSignature to return digital signature / certificate info from VcRedist installers via Get-FileMetadata


  • Update VcRedist 2019 to 14.27.29112.0

  • Update VcRedist 2017 to 14.16.27033.0

  • Update Import-VcConfigMgrApplication to support spaces in paths with ROBOCOPY

  • Rename Master branch to Main


  • Update VcRedist 2019 to 14.27.29016.0

  • Update Uninstall-VcRedist to ensure a VcRedist uninstall does not trigger a reboot


  • Update for VcRedist 2019 version 14.26.28720

  • Automate updating the VcRedist manifest for new 2019 releases

  • Update functions with new evaluations from PSScriptAnalyzer


  • Fixes an issue where Get-InstalledVcRedist was not returning installed VcRedists due to incorrect RegEx match. Improve code that filters output with the ExportAll parameter


  • Import-MdtModule - simplify code and ensure exception is thrown when module cannot be loaded

  • Get-InstalledVcRedist - update filtering for Redistributables and update code style

  • Save-VcRedist.ps1 - update inline help, remove use of Start-BitsTransfer (now only uses Invoke-WebRequest), force use of TLS 1.2, fix reference to ProxyCredential parameter, fix output of downloaded VcRedists to the pipeline

  • Update-VcMdtApplication.ps1 - ensure correct path in verbose output, fix issue with VcRedist executables not being copied to the MDT deployment share

  • Update-VcMdtBundle - update inline help, update approach to finding the existing VcRedist bundle to fix an issue where the bundle isn't in the default location, update approach to updating bundle properties

  • Update Pester tests for public functions


  • Add $ProgressPreference = "SilentlyContinue" to `Save-VcRedist for faster downloads

  • Update manifest to support VcRedist 2019 14.25.28508.3

  • Update module description

  • Export variable VcManifest for future use


  • Updates the manifest for VcRedist 2019 14.24.28127.4

  • Updates to Import-VcConfigMgrApplication for UNC path and ConfigMgr module validation

  • Updates to Export-VcManifest to export entire manifest. Working toward automatic updates to the manifest with new VcRedist releases


  • Update the manifest for VcRedist 2019 version 14.23.27820.0 for Visual Studio 2019 16.3


  • VcRedists imported into the MDT deployment share don't have the Hide this application in the Deployment Wizard option enabled

  • Added -DontHide parameter to Import-VcMdtApplication to not hide applications in the MDT Deployment Wizard


  • Add default path for -Path parameter in Save-VcRedist and Install-VcRedist to address #53 and ensure function works when parameter is not specified

  • Add Begin,Process,End to fix pipeline support in Save-VcRedist, Install-VcRedist, Import-VcConfigMgrApplication, Import-VcMdtApplication, Update-VcMdtApplication and Update-VcMdtBundle and address #53

  • Add function Uninstall-VcRedist to manage uninstalling VcRedists

  • Update Pester tests for Public functions


  • Add basic proxy support to Save-VcRedist

  • Update output for Import-VcMdtApplication, New-VcMdtBundle, Update-VcMdtApplication, Update-VcMdtBundle to export all application properties

  • General code formatting and quality updates - use of full type names and cmdlet/function parameters, parameter splatting

  • Update verbose output messages

  • Consistent parameter declaration on Public functions

  • Additional Try/Catch statements for better handling of exceptions

  • Remove Begin/Process/End statements from functions that don't need to support multiple objects on the pipeline

  • Move module manifest location from /Manifest to top level module folder and update Get-VcList to reflect new location

  • Update AppVeyor integration and scripts layout


  • Update the manifest for VcRedist 2019 version 14.21.27702.2 for Visual Studio 2019 16.1



  • Simplify version semantics to

  • Add VcRedist 2019 to the manifest

  • Convert the manifest to JSON for easier management and simpler code

  • Update function Get-VcList to support JSON manifest format

  • Combine VcRedists into a single manifest

  • Rename Get-VcRedist to Save-VcRedist

  • Rename Import-VcCmApp to Import-VcConfigMgrApplication

  • Rename function Export-VcXml to Export-VcManifest

  • Rename Import-VcMdtApp to Import-VcMdtApplication

  • Split function Import-VcMdtApplication into Import-VcMdtApplication, Update-VcMdtApplication, New-VcMdtBundle, Update-VcMdtBundle to simplfy code and provide more robust functions

  • Update HelpUri property on each function

  • Update Get-InstalledVcRedist to export additional properties including Release and Architecture

  • Add private functions New-MdtApplicationFolder, New-MdtDrive

  • Update function Get-VcList with -Export parameter for All, Supported, Unsupported

  • Add ability to filter Get-VcList output with -Release and -Architecture

  • Fix pipeline support for Install-VcRedist, Import-VcMdtApplication and Import-VcConfigMgrApplication to accept output from Get-VcList on the pipeline

  • Remove -Release and -Architecture parameters from Install-VcRedist, Import-VcMdtApplication and Import-VcConfigMgrApplication. Use Get-VcList to filter for release and architecture instead

  • Update Pester tests for public and private functions


  • Update manifests with correct details for VcRedist 2017 v14.16.27027.1. v1.5.1.95 included the incorrect manifest commit.


  • Update manifests with VcRedist 2017 v14.16.27024.1

  • Update module to export alias Save-VcRedist for Get-VcRedist. Next major version will rename Get-VcRedist to Save-VcRedist

  • Change -VcList to use [PSCustomObject] instead of [array] in Import-VcCmApp and Import-VcMdtApp

  • Update module icon to use new Visual Studio 2019 icon


  • Added private function Import-MdtModule to improve MDT module loading code

  • Update Import-VcMdtApp for more robust error checking

  • Update private function Get-ValidPath to avoid errors on invalid path

  • Update manifest with VcRedist 2017 version 14.16.27024.1


  • Fix private function Get-Bitness to ensure only single output when using no parameters or with -Architecture


  • Fixed incorrect working directory when importing VcRedists into MDT in Import-VcMdtApp


  • Add private function Invoke-Process (by Adam Bertram)

  • Update Install-VcRedist to use Invoke-Process for better Start-Process handling

  • Fix Resolve-Path / TrimEnd in private function Get-ValidPath

  • Fix relative path issue in Import-VcCmApp * closes issue #24

  • Bundle added to MDT now adds Redistributables as dependencies in order from oldest to newest

  • Splatting arguments in Install-VcRedist, Import-VcMdtApp, Import-VcCmApp

  • Code formatting updates

  • Documentation updates


  • Update manifests for latest 2017 release, version 14.15.26706.0

  • Update manifests with silent install command line arguments

  • Added -Silent switch to Install-VcRedist, Import-VcMdtApp & Import-VcCmApp to support optional silent install command line arguments

  • Added private function Get-Bitness to support determining processor architecture of current OS

  • Update Install-VcRedist to avoid installing 64-bit Redistributables on 32-bit Windows

  • Removed pipeline support for -VcRedist parameter in Install-VcRedist, Import-VcMdtApp & Import-VcCmApp. Passing output from Get-VcList to these commands is not working correctly. Pipeline support may be added back in a future release

  • Removed 2015 Redistributables from default value for -Release parameter for Install-VcRedist, Import-VcMdtApp & Import-VcCmApp functions to avoid installing 2015 then 2017 Redistributables that are the same major release version


  • Update manifests with 2013, version 12.0.40664

  • Added UninstallString to function Get-InstalledVcRedist output

  • Get-VcList will attempt to match the VcRedist version in the manifest to the Product Version property on an existing downloaded file. If the manifest has a higher version, the file will be re-downloaded

  • Added private function Get-FileMetadata to support retrieving Product Version from downloaded file

  • Update logic in Install-VcRedist when querying for installed VcRedists


  • Add Get-InstalledVcRedist, using private function Get-InstalledSoftware. Closing issue #18 with feature request for this function. Get-InstallSoftware function by Adam Bertram

  • Update manifests with correct ProductCodes

  • Update documentation


  • Update manifests with 2017, version 14.14

  • Update manifests with <Version></Version> to enable better install logic e.g. skipping installing 2015 over 2017 (same 14.x version)


  • Fix import of Redistributables with correct x86, x64 platform selection in MDT application in Import-VcMdtApp

  • Fix import of Redistributables into a folder specified by -AppFolder where the folder already exists in Import-VcMdtApp



  • Code formatting updates

  • Use Join-Path to build folder/file paths to better work on PSCore

  • Pester tests updates

  • Version update to better align with feature changes


  • Fixes to ConfigMgr application import


  • Add -Bundle to Import-VcMdtApp to create an Application Bundle with the Redistributables as dependencies. Redistributables will be hidden so that only the Bundle is selectable in the deployment wizard

  • Updating simple Pester tests and getting Appveyor integration working

  • Cleanup inline help

  • Generated external help with platyPS


  • Added function Import-VcCmApp for importing Visual C++ Redistributables into ConfigMgr.


  • Refactored into a PowerShell module to simplify coding and publishing to the PowerShell Gallery.