Unpacking Software Livestream

Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Chocolatey Coding Livestream

Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don't miss this opportunity to engage with our team and contribute to the future of Chocolatey!

Learn More

Calling All Chocolatiers! Whipping Up Windows Automation with Chocolatey Central Management

Webinar from
Wednesday, 17 January 2024

We are delighted to announce the release of Chocolatey Central Management v0.12.0, featuring seamless Deployment Plan creation, time-saving duplications, insightful Group Details, an upgraded Dashboard, bug fixes, user interface polishing, and refined documentation. As an added bonus we'll have members of our Solutions Engineering team on-hand to dive into some interesting ways you can leverage the new features available!

Watch On-Demand
Chocolatey Community Coffee Break

Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Watch The Replays
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand



Downloads of v 1.0.0-RC1:


Last Update:

19 Nov 2023

Package Maintainer(s):

Software Author(s):

  • bcurran3


bcurran3 unofficial ccu choco upgrade all cup

(unofficial) Chocolatey Continuous Upgrader (CCU) (Script)

This is a prerelease version of (unofficial) Chocolatey Continuous Upgrader (CCU) (Script).

  • 1
  • 2
  • 3

1.0.0-RC1 | Updated: 19 Nov 2023



Downloads of v 1.0.0-RC1:



Software Author(s):

  • bcurran3

(unofficial) Chocolatey Continuous Upgrader (CCU) (Script) 1.0.0-RC1

This is a prerelease version of (unofficial) Chocolatey Continuous Upgrader (CCU) (Script).

  • 1
  • 2
  • 3

All Checks are Passing

3 Passing Tests

Validation Testing Passed

Verification Testing Passed


Scan Testing Successful:

No detections found in any package files

Learn More

Deployment Method: Individual Install, Upgrade, & Uninstall

To install (unofficial) Chocolatey Continuous Upgrader (CCU) (Script), run the following command from the command line or from PowerShell:


To upgrade (unofficial) Chocolatey Continuous Upgrader (CCU) (Script), run the following command from the command line or from PowerShell:


To uninstall (unofficial) Chocolatey Continuous Upgrader (CCU) (Script), run the following command from the command line or from PowerShell:


Deployment Method:


This applies to both open source and commercial editions of Chocolatey.

1. Enter Your Internal Repository Url

(this should look similar to https://community.chocolatey.org/api/v2/)

2. Setup Your Environment

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

2. Get the package into your environment

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://community.chocolatey.org/api/v2/. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Copy Your Script

choco upgrade choco-continuous-upgrader -y --source="'INTERNAL REPO URL'" --version="'1.0.0-RC1'" --prerelease [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:

choco upgrade choco-continuous-upgrader -y --source="'INTERNAL REPO URL'" --version="'1.0.0-RC1'" --prerelease

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0

Exit $exitCode

- name: Install choco-continuous-upgrader
    name: choco-continuous-upgrader
    version: '1.0.0-RC1'
    state: present
    allow_prerelease: yes

See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.

chocolatey_package 'choco-continuous-upgrader' do
  action    :install
  source   'INTERNAL REPO URL'
  version  '1.0.0-RC1'
  options  '--prerelease'

See docs at https://docs.chef.io/resource_chocolatey_package.html.

cChocoPackageInstaller choco-continuous-upgrader
    Name        = "choco-continuous-upgrader"
    Version     = "1.0.0-RC1"
    Source      = "INTERNAL REPO URL"
    chocoParams = "--prerelease"

Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.

package { 'choco-continuous-upgrader':
  ensure          => '1.0.0-RC1',
  install_options => ['--prerelease'],
  provider        => 'chocolatey',
  source          => 'INTERNAL REPO URL',

Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.

4. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.


This package is exempt from moderation. While it is likely safe for you, there is more risk involved.



To use choco:// protocol URLs, install (unofficial) choco:// Protocol support

Screenshot of choco-continuous-upgrader
Click here for secret GeekMode screenshot

This package is a pseudo replacement for choco-upgrade-all-at which is a pseudo replacement for choco-upgrade-all-at-startup. (Got that? There will be a pop quiz!) CCU is a result of my obsessive desire to keep my Chocolatey packages up-to-date.




CCU starts a background PowerShell process which continuously checks FeedBurner for recently published Chocolatey packages. When locally installed packages are found in the feed, they are automatically upgraded.

CCU defaults to checking every 30 minutes, automatically upgrading packages, and no foreground notifications. These defaults are overridable and configurable; e.g. you could use CCU to just notify you of upgrades without automatically installing them.

Install my choco-toast-notifications.hook to enable beautiful foreground toast notifications of package installs, upgrades, and uninstalls. If you plan to use CCU only for notifications of upgrades without having them automatically installed, I recommend using burnttoast-psmodule for those notifications.


CCU -Start will start CCU with defaults.
CCU -Status will display CCU's running options and packages that have been upgraded or waiting to be upgraded.
CCU -Notify (assumes -Start) will send foreground notifications of upgrades using either BurntToast or MSG.
CCU -NoUpgrades (assumes -Start) will check for upgrades but not automatically install them.
CCU -Stop to stop CCU.
CCU -EditConfig to set your custom defaults.
CCU -Help for more info.


If you find choco-continuous-upgrader (CCU) useful, and I suspect you will, please consider donating: https://www.paypal.me/bcurran3donations or become a patron at https://www.patreon.com/bcurran3

#Requires -RunAsAdministrator
#$ErrorActionPreference = 'Stop'
# CCU.ps1 (Chocolatey Continuous Upgrader) Copyleft 2023 by Bill Curran AKA BCURRAN3
# LICENSE: GNU GPL v3 - https://www.gnu.org/licenses/gpl.html
# Open a GitHub issue at https://github.com/bcurran3/ChocolateyPackages/issues if you have suggestions for improvement.

param (

Write-Host "CCU.ps1 v1.0.0-RC2 (2023/11/18) - (unofficial) Chocolatey Continuous Upgrader" -Foreground White
Write-Host "Copyleft 2023 Bill Curran ([email protected]) - free for personal and commercial use`n" -Foreground White

$ErrorActionPreference = 'Stop'
$execdir=(Split-Path -parent $MyInvocation.MyCommand.Definition)
if (!$env:ChocolateyToolsLocation) {$env:ChocolateyToolsLocation = "$ENV:SystemDrive\tools"}

function create_config {
	Write-Host "  ** Creating new CCU config file:`n" -Foreground Yellow
	if (Test-Path "$CCUconfig") {Remove-Item "$CCUconfig" -Force}
	do {
		$ConfigNotify=Read-Host "     CCU notifications (True/False)? "
	} until (($ConfigNotify -eq 'true') -or ($ConfigNotify -eq 'false'))
	do {
		$ConfigNoUpgrades=Read-Host "     Disable CCU automatic upgrades (True/False)? "
	} until (($ConfigNoUpgrades -eq 'true') -or ($ConfigNoUpgrades -eq 'false'))
	do {
		[int]$ConfigWaitTime=Read-Host "     CCU wait time (# of minutes)? "
	} until ($ConfigWaitTime -is [int])
	$ConfigFile = New-Object System.XMl.XmlTextWriter("$CCUconfig", $Null)
	$ConfigFile.Formatting = 'Indented'
    $ConfigFile.Indentation = 1
    $ConfigFile.IndentChar = "`t"
	Write-Host "`n  ** Created $CCUconfig." -Foreground Magenta
	if (Test-Path "$RunningFile") {
		Write-Host "  ** Restart CCU for defaults to take effect." -Foreground Magenta
	Write-Host ""

function print_footer {
	Write-Host "Found CCU.ps1 useful?" -ForegroundColor White
    Write-Host "Buy me a beer at https://www.paypal.me/bcurran3donations" -ForegroundColor White
    Write-Host "Become a patron at https://www.patreon.com/bcurran3" -ForegroundColor White

if (Test-Path "$RunningFile") {
	$created=(Get-ChildItem "$RunningFile").LastWriteTime
	$rebooted=(Get-CimInstance -ClassName win32_operatingsystem | select csname, lastbootuptime).LastBootUpTime
	if ($created -lt $rebooted) {
		Write-Host " ** CCU detected a reboot while previously running." -Foreground Yellow
		Write-Host " ** Deleting temp file.`n" -Foreground Yellow
		Remove-Item $RunningFile

if (!$Start -and !$Stop -and !$Status -and !$Help -and !$Notify -and !$NoUpgrades -and !$Debug -and !$EditConfig -and !$WaitTime) {
	if (Test-Path "$CCUconfig") {
		[xml]$ConfigFile = Get-Content "$CCUconfig"
        if ($ConfigFile.Preferences.Notify -eq 'true') {$Notify=$True}
        if ($ConfigFile.Preferences.NoUpgrades -eq 'true') {$NoUpgrades=$True}
        if ($ConfigFile.Preferences.WaitTime) {$WaitTime=$ConfigFile.Preferences.WaitTime}
	if (Test-Path "$RunningFile") {
	if ($MiniHelp) {
		Write-Host "  ** Please run 'CCU -?' or 'CCU -help' for help menu.`n" -Foreground White

if ($EditConfig) {create_config; return}
if ($DeleteConfig) {Remove-Item "$CCUconfig"; Write-Host "  ** Deleted $CCUconfig" -Foreground Yellow; return}
if ($Debug) {$Start=$True; $Background=$False}
if ($Notify) {$env:Notify=$True; $Start=$True} else {$env:Notify=$False}
if ($NoUpgrades) {$env:AutoUpgrade=$False; $Start=$True} else {$env:AutoUpgrade=$True}
if ($WaitTime) {$Start=$True}
if (!$WaitTime) {$WaitTime="30"} ; $env:WaitTime=$WaitTime
if ($Stop) {$Help=$False; $Start=$False; $Status=$False}

if ( $Help ) {
	Write-Host "OPTIONS AND SWITCHES:" -Foreground Magenta
	Write-Host " -Start"
	Write-Host "    Start checking for and install upgrades."
	Write-Host " -Stop"
	Write-Host "    Stop checking for upgrades."
	Write-Host " -Status"
	Write-Host "    Show CCU status."
	Write-Host " -Notify (assumes -Start)"
	Write-Host "    Send notifications when upgrades are found."
	Write-Host " -NoUpgrades (assumes -Start)"
	Write-Host "    Disable auto-upgrading of packages."
	Write-Host " #  (assumes -Start)"
	Write-Host "    Number of minutes to wait between checks (default 30)."
	Write-Host " -EditConfig"
	Write-Host "    Create CCU config file."
	Write-Host " -GeekMode"
	Write-Host "    Just for fun."
	Write-Host " -Help, -?"
	Write-Host "    This menu."
	Write-Host "EXAMPLES:" -Foreground Magenta
	Write-Host " CCU -Start 60"
	Write-Host " CCU -Start -Notify -NoUpgrades 15`n"

if ($Status) {
	if (Test-Path "$RunningFile") {
		Write-Host "  ** CCU is running." -Foreground Yellow
		if (Test-Path "$StatusFile") {
			foreach($line in Get-Content "$StatusFile") {
			Write-Host "$line" -Foreground Yellow
		} else {
			Write-Host "  ** ERROR: Status file not found. Run `'CCU -Status`' again." -Foreground Red
			Write-Host "  ** ERROR: If this error continues, Run `'CCU -Stop`'" -Foreground Red
	} else {
		Write-Host "  ** CCU is not running." -Foreground Yellow
	if (Get-Process -Name choco -ErrorAction SilentlyContinue) {
		Write-Host "  ** Chocolatey is installing an upgrade.`n" -Foreground Yellow
	Write-Host ""

if ($Start) {
	if (Test-Path "$RunningFile") {
		Write-Host "  ** CCU is already running!`n" -Foreground Yellow
	if ($Background) {
		$CCUProcess = Start-Process PowerShell -ArgumentList '$host.ui.RawUI.WindowTitle=''Chocolatey Continuous Upgrader''; Import-Module ./CCU.psm1; for (;;) {keep_checking}' -WindowStyle Hidden -WorkingDirectory "$execdir" -PassThru
		$CCUProcess | Export-Clixml -Path "$RunningFile"
	if ($Debug) {
		$CCUProcess = Start-Process PowerShell -ArgumentList '$host.ui.RawUI.WindowTitle=''Chocolatey Continuous Upgrader''; Import-Module ./CCU.psm1; for (;;) {keep_checking}' -WindowStyle Normal -WorkingDirectory "$execdir" -PassThru
		$CCUProcess | Export-Clixml -Path "$RunningFile"
	Write-Host "  ** CCU STARTED." -Foreground Yellow
	if ($Notify) {Write-Host "  ** CCU notifications ENABLED." -Foreground Yellow} else {Write-Host "  ** CCU notifications DISABLED." -Foreground Yellow}
	if ($NoUpgrades) {Write-Host "  ** CCU package upgrades DISABLED." -Foreground Yellow} else {Write-Host "  ** CCU package upgrades ENABLED." -Foreground Yellow}
	Write-Host "  ** CCU will check for upgrades every $WaitTime minutes.`n" -Foreground Yellow

if ($Stop) {
	if (Get-Process -Name choco -ErrorAction SilentlyContinue) {
		Write-Host "  ** Chocolatey is installing an upgrade. Waiting for it to finish..." -Foreground Yellow
		while (Get-Process -Name choco -ErrorAction SilentlyContinue) {Start-Sleep 1}
	if (Test-Path "$RunningFile") {$CCUProcess = Import-Clixml -Path "$RunningFile"}
    $CCUProcess | Stop-Process -ErrorAction SilentlyContinue
	if (!$?) {
		Write-Host "  ** CCU already STOPPED!`n" -Foreground Yellow
	} else {
		Write-Host "  ** CCU STOPPED.`n" -Foreground Yellow
	if (Test-Path "$RunningFile") {Remove-Item "$RunningFile" -Force}
	if (Test-Path "$StatusFile") {Remove-Item "$StatusFile" -Force}
# CCU.psm1 (Chocolatey Continuous Upgrader) Copyleft 2023 by Bill Curran AKA BCURRAN3
# LICENSE: GNU GPL v3 - https://www.gnu.org/licenses/gpl.html
# Open a GitHub issue at https://github.com/bcurran3/ChocolateyPackages/issues if you have suggestions for improvement.

if (Get-Module -ListAvailable -Name BurntToast) {$ToastAvailable=$True} else {$ToastAvailable=$False}
if (!$env:ChocolateyToolsLocation) {$env:ChocolateyToolsLocation = "$ENV:SystemDrive\tools"}

if (Test-Path "$StatusFile") {Remove-Item "$StatusFile" -Force}
if ($env:AutoUpgrade -eq 'true') {$AutoUpgrade=$True} else {$AutoUpgrade=$False}
if ($env:Notify -eq 'true') {$Notify=$True} else {$Notify=$False}
if ($env:WaitTime -eq '') {$WaitTime=30} else {$WaitTime=$env:WaitTime}

# Send Windows MSG messages to foreground about available upgrades
function send_msg {
	& msg * /time:3 "Chocolatey Continuous Upgrader:`n$Feedpackage v$FeedPackageVersion`nUPGRADE AVAILABLE."

# Send toast messages to foreground about available upgrades
function send_toast {
	if ((Get-Service WinRM).Status -eq 'Stopped') {Start-Service 'WinRM' -ErrorAction SilentlyContinue}
	if ((Get-Service WinRM).Status -eq 'Running') {
		Invoke-Command -ComputerName $(hostname) -ArgumentList $FeedPackage,$FeedPackageVersion -ScriptBlock {param([string]$FeedPackage, [string]$FeedPackageVersion) Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force; New-BurntToastNotification -Text "Chocolatey Continuous Upgrader:`n", "$Feedpackage v$FeedPackageVersion `nUPGRADE AVAILABLE." -AppLogo "$env:PUBLIC\Pictures\choco.ico"}

function send_notification {
	if ($ToastAvailable -eq $True) {send_toast} else {send_msg}

# Meat and Potatoes
function keep_checking {
	if (!$WaitTime) {$WaitTime=30}
	if ($Notify) {
		Write-Host "  ** CCU notifications ENABLED." -Foreground Yellow
		Add-Content -Path "$StatusFile" -Value "  ** CCU notifications ENABLED."
	} else {
		Write-Host "  ** CCU Notifications DISABLED." -Foreground Yellow
		Add-Content -Path "$StatusFile" -Value "  ** CCU notifications DISABLED."
    if ($AutoUpgrade) {
		Write-Host "  ** CCU package upgrades ENABLED." -Foreground Yellow
		Add-Content -Path "$StatusFile" -Value "  ** CCU package upgrades ENABLED."
	} else {
		Write-Host "  ** CCU package upgrades DISABLED." -Foreground Red
		Add-Content -Path "$StatusFile" -Value "  ** CCU package upgrades DISABLED."
	Add-Content -Path "$StatusFile" -Value "  ** CCU will check for upgrades every $WaitTime minutes."
    # Get list of installed packages
    Write-Host "  ** Getting list of installed Chocolatey packages..." -Foreground Magenta
    Write-Host "  ** Found $((Get-Childitem $env:ChocolateyInstall\lib).count) installed Chocolatey packages" -Foreground Green
    Write-Host "  ** Found $((Get-Childitem $env:ChocolateyInstall\extensions).count) installed Chocolatey extensions" -Foreground Green
    Write-Host "  ** Found $((Get-Childitem $env:ChocolateyInstall\hooks).count) installed Chocolatey hooks" -Foreground Green
    $InstalledPackages = Get-Childitem $env:ChocolateyInstall\lib | Split-Path -Leaf
    $InstalledPackages = $InstalledPackages + (Get-Childitem $env:ChocolateyInstall\extensions | Split-Path -Leaf)
    $InstalledPackages = $InstalledPackages + (Get-Childitem $env:ChocolateyInstall\hooks | Split-Path -Leaf)

    # Get Feedburner list of upgraded packages
    Write-Host "  ** Getting Feedburner list of recently published Chocolatey packages..." -Foreground Magenta
    try {
    	[xml]$feed = Invoke-WebRequest -Uri 'https://feeds.feedburner.com/chocolatey' | Select-Object -ExpandProperty Content
    catch {
        if ( $_.Exception.Response.StatusCode.Value__ -eq 404 ) {
            Write-Host "  ** 404 error getting https://feeds.feedburner.com/chocolatey" -Foreground Red
	        Write-Host "  ** Waiting $WaitTimeRemaining minutes before checking again...`r" -Foreground Cyan -NoNewLine
            while ($WaitTimeRemaining -gt 0) {
				Write-Host "  ** Waiting $WaitTimeRemaining minutes before checking again...   `r" -Foreground Cyan -NoNewLine
	            Sleep 60
        } else { Write-Host "  ** Bad response..." -Foreground Red }
    $links = $feed.rss.channel.item.link

    Write-Host "  ** Found $($links.count) Chocolatey packages in Feedburner list." -Foreground Green
    Write-Host "  ** $($feed.rss.channel.item[0].title) is the latest Chocolatey package published at $([System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId((Get-Date -Date $feed.rss.channel.item[0].updated), $(Get-TimeZone).id))." -Foreground Green

    # Upgrade and/or notify about upgraded packages
	Add-Content -Path "$StatusFile" -Value ""
    for ($link=0; $link -lt $links.count; $link++)
        $FeedPackage = $links[$link] | split-path | split-path -leaf
    	$FeedPackageVersion = $links[$link] | split-path -leaf

        for ($installed=0; $installed -lt $InstalledPackages.count; $installed++)
    		if ($InstalledPackages[$installed] -eq $FeedPackage)
    			[xml]$nuspecFile = Get-Content "$env:ChocolateyInstall\lib\$FeedPackage\$FeedPackage.nuspec"
    			if ($FeedPackageVersion -gt $InstalledVersion)
                    Write-Host "  ** Found upgrade for $FeedPackage (v$FeedPackageVersion published $([System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId((Get-Date -Date $feed.rss.channel.item[$link].updated), $(Get-TimeZone).id)))" -Foreground Magenta
					Add-Content -Path "$StatusFile" -Value "  ** Found upgrade for $FeedPackage (v$FeedPackageVersion published $([System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId((Get-Date -Date $feed.rss.channel.item[$link].updated), $(Get-TimeZone).id)))"
    				if ($Notify) {send_notification}
    				if ($AutoUpgrade) {
						if (Get-Process -Name choco -ErrorAction SilentlyContinue) {
							Write-Host "  ** Chocolatey is running elsewhere. Waiting for it to finish..." -Foreground Yellow
                 		    while (Get-Process -Name choco -ErrorAction SilentlyContinue) {Start-Sleep 1}
						& choco upgrade $FeedPackage -y
						if ($?) {
							Add-Content -Path "$StatusFile" -Value "  ** choco upgrade of $FeedPackage SUCCESSFUL."
						} else {
							Add-Content -Path "$StatusFile" -Value "  ** choco upgrade of $FeedPackage FAILED."
    if (!($FoundUpgrades)) {
		Write-Host "  ** No packages to upgrade." -Foreground Magenta
		Add-Content -Path "$StatusFile" -Value "  ** No packages to upgrade."
	Write-Host "  ** Waiting $WaitTimeRemaining minutes before checking again...`r" -Foreground Cyan -NoNewLine
    while ($WaitTimeRemaining -gt 0) {
		Write-Host "  ** Waiting $WaitTimeRemaining minutes before checking again...   `r" -Foreground Cyan -NoNewLine
	    Sleep 60
	if (Test-Path "$StatusFile") {Remove-Item "$StatusFile"}
$ErrorActionPreference = 'Stop'
$packageName     = 'choco-continuous-upgrader'
$toolsDir        = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$scriptDir       = "$(Get-ToolsLocation)\BCURRAN3"
$script          = 'CCU.ps1'

# Setup
# New storage location moving forward for all my Chocolatey scripts
if (!(Test-Path "$(Get-ToolsLocation)\BCURRAN3")) { New-Item -Path "$(Get-ToolsLocation)" -Name "BCURRAN3" -ItemType "Directory" | Out-Null }

# Install Script
# Move new files and support files (if applicable)
Move-Item "$toolsDir\CCU.*" "$scriptDir" -Force -ErrorAction SilentlyContinue

# Create "shim"
Install-ChocolateyPowershellCommand -PackageName 'CCU' -PSFileFullPath "$scriptDir\$script"

Write-Host "  ** Type `'CCU`' at the command line to run Chocolatey Continuous Upgrader." -Foreground Magenta
$ErrorActionPreference = 'Stop'
$packageName     = 'choco-continuous-upgrader'
$scriptDir       = "$(Get-ToolsLocation)\BCURRAN3"

Remove-Item "$scriptDir\CCU*.*" -Force -ErrorAction SilentlyContinue | Out-Null

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status
(unofficial) Chocolatey Continuous Upgrader (CCU) (Script) 1.0.1 64 Monday, December 11, 2023 Approved
(unofficial) Chocolatey Continuous Upgrader (CCU) (Script) 1.0.0 40 Sunday, November 26, 2023 Approved
(unofficial) Chocolatey Continuous Upgrader (CCU) (Script) 1.0.0-RC2 29 Wednesday, November 22, 2023 Exempted
(unofficial) Chocolatey Continuous Upgrader (CCU) (Script) 1.0.0-RC1 27 Sunday, November 19, 2023 Exempted


  • 1.0.0 - initial release


    • Nothing planned.
    • Maybe, just maybe... only if I'm really bored one day or people demand it, setup a scheduled task to auto-run CCU on system boot.

This package has no dependencies.

Discussion for the (unofficial) Chocolatey Continuous Upgrader (CCU) (Script) Package

Ground Rules:

  • This discussion is only about (unofficial) Chocolatey Continuous Upgrader (CCU) (Script) and the (unofficial) Chocolatey Continuous Upgrader (CCU) (Script) package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or (unofficial) Chocolatey Continuous Upgrader (CCU) (Script), or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus