cup all -y is used to update all Chocolatey packages at boot. At the moment there is an issue in the latest version of VirtualBox, and I want to avoid that this package is updated at boot while the other packages need to be updated.

Attempt to solve the issue

I have checked the help function of the command:

C:\>cup all -h
Chocolatey v0.9.9.8
Upgrade Command

Upgrades a package or a list of packages. Some may prefer to use `cup`
 as a shortcut for `choco upgrade`.


    choco upgrade <pkg|all> [<pkg2> <pkgN>] [<options/switches>]
    cup <pkg|all> [<pkg2> <pkgN>] [<options/switches>]

NOTE: `all` is a special package keyword that will allow you to upgrade
 all currently installed packages.


    choco upgrade chocolatey
    choco upgrade notepadplusplus googlechrome atom 7zip
    choco upgrade notepadplusplus googlechrome atom 7zip -dvfy
    choco upgrade git --params="/GitAndUnixToolsOnPath /NoAutoCrlf" -y
    choco upgrade nodejs.install --version 0.10.35
    choco upgrade git -s "https://somewhere/out/there"
    choco upgrade git -s "https://somewhere/protected" -u user -p pass

Options and Switches

NOTE: Options and switches apply to all items passed, so if you are
 installing multiple packages, and you use `--version=1.0.0`, it is
 going to look for and try to install version 1.0.0 of every package
 passed. So please split out multiple package calls when wanting to
 pass specific options.

 -?, --help, -h
     Prints out the help menu.

 -d, --debug
     Debug - Run in Debug Mode.

 -v, --verbose
     Verbose - See verbose messaging.

     --acceptlicense, --accept-license
     AcceptLicense - Accept license dialogs automatically.

 -y, --yes, --confirm
     Confirm all prompts - Chooses affirmative answer instead of prompting.
       Implies --accept-license

 -f, --force
     Force - force the behavior

     --noop, --whatif, --what-if
     NoOp - Don't actually do anything.

 -r, --limitoutput, --limit-output
     LimitOutput - Limit the output to essential information

     CommandExecutionTimeoutSeconds - Override the default execution timeout
       in the configuration of 2700 seconds.

 -c, --cache, --cachelocation, --cache-location=VALUE
     CacheLocation - Location for download cache, defaults to %TEMP% or value
       in chocolatey.config file.

     --allowunofficial, --allow-unofficial, --allowunofficialbuild, --allow-unofficial-build
     AllowUnofficialBuild - When not using the official build you must set
       this flag for choco to continue.

 -s, --source=VALUE
     Source - The source to find the package(s) to install. Special sources
       include: ruby, webpi, cygwin, windowsfeatures, and python. Defaults to
       default feeds.

     Version - A specific version to install. Defaults to unspecified.

     --pre, --prerelease
     Prerelease - Include Prereleases? Defaults to false.

     --x86, --forcex86
     ForceX86 - Force x86 (32bit) installation on 64 bit systems. Defaults to

     --ia, --installargs, --installarguments, --install-arguments=VALUE
     InstallArguments - Install Arguments to pass to the native installer in
       the package. Defaults to unspecified.

 -o, --override, --overrideargs, --overridearguments, --override-arguments
     OverrideArguments - Should install arguments be used exclusively without
       appending to current package passed arguments? Defaults to false.

     --notsilent, --not-silent
     NotSilent - Do not install this silently. Defaults to false.

     --params, --parameters, --pkgparameters, --packageparameters, --package-parameters=VALUE
     PackageParameters - Parameters to pass to the package. Defaults to

 -m, --sxs, --sidebyside, --side-by-side, --allowmultiple, --allow-multiple, --allowmultipleversions, --allow-multiple-versions
     AllowMultipleVersions - Should multiple versions of a package be
       installed? Defaults to false.

 -i, --ignoredependencies, --ignore-dependencies
     IgnoreDependencies - Ignore dependencies when upgrading package(s).
       Defaults to false.

 -n, --skippowershell, --skip-powershell
     Skip Powershell - Do not run chocolateyInstall.ps1. Defaults to false.

     --failonunfound, --fail-on-unfound
     Fail On Unfound Packages - If a package is not found in feeds specified,
       fail instead of warn.

     --failonnotinstalled, --fail-on-not-installed
     Fail On Non-installed Packages - If a package is not already intalled,
       fail instead of installing.

 -u, --user=VALUE
     User - used with authenticated feeds. Defaults to empty.

 -p, --password=VALUE
     Password - the user's password to the source. Defaults to empty.

But it does not seem to have a function to exclude a certain package.

How to update all packages at boot, except one?


You have two options: pin a package in advance, or exclude items during choco upgrade.

Pin Packages to Suppress Upgrades

You can pin any program you don't want updated.

Type choco pin -h for more details. If that command doesn't give you anything, please upgrade Chocolatey to at least 0.9.9.x.

Pin Command

Pin a package to suppress upgrades.

This is especially helpful when running choco upgrade for all packages, as it will automatically skip those packages. Another alternative is choco upgrade --except="pkg1,pk2".


choco pin [list]|add|remove [<options/switches>]


choco pin
choco pin list
choco pin add -n=git
choco pin add -n=git --version 1.2.3
C4B: choco pin add -n=git --version 1.2.3 --reason "'others may need to review'"
choco pin remove --name git

NOTE: --reason option ONLY available in Chocolatey for Business (C4B).

Exclude Packages While Upgrading

Sometimes you just simply want to exclude items you would normally include in upgrades. You don't want pins as those are meant to live longer than a single command run. That is where the Exclude option comes in to your upgrade command.

As of Chocolatey v0.9.10, when calling upgrade, you can pass the optional --except as a switch for upgrade. An example would be choco upgrade all --except="'conemu'".

  • Why choco pin? Is cup all deprecated? – 030 Sep 14 '15 at 19:27
  • 9
    Why would cup all be deprecated? Pin is a command that says "stay on this version for this package." – ferventcoder Sep 14 '15 at 22:14
  • NOTE: To add a reason to a pin, you must have Chocolatey for Business (C4B). – ferventcoder Mar 10 '19 at 0:07
  • What happens if I want to pin multiple packages? My use case: I want to upgrade most of my packages once a week but there are a few programs I use infrequently. I would like to upgrade the infrequent packages about once every two months. I plan to use pid add and pin remove for those occasions. – IThink Jul 20 '20 at 17:08

According to the official documentation:

choco upgrade all --except="'skype,conemu'"
  • On windows this will prevent the package to upgrade any more, even if you do not use except! The package folder is moved to C:\ProgramData\chocolatey\lib-bad. If you want to upgrade again move it to C:\ProgramData\chocolatey\lib – Alireza Fattahi Oct 5 '19 at 14:54
  • The command doesn't work with single quotes in my case in Windows 10; so I just used quotes: cup all -y --except="mongodb". – Metafaniel Sep 4 '20 at 5:09
  • @Metafaniel I don't know why they use both single and double quotes. But this is how it is officially documented. https://chocolatey.org/docs/commandsupgrade – Luke Sep 7 '20 at 13:02
  • @Luke Sure but, only without single quotes worked for me. I just wanted to point it out. Thanks! – Metafaniel Sep 8 '20 at 20:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.