I recently set up a new machine and installed/enabled chocolatey. As far as I can remember I was able to call a package via powershell based on the package name. For instance, if I wanted to install mongodb, I used to type choco install mongodb
- and was able to call the mongo client by simply typing mongo
in the powershell console. Is there a way to see if something is bound to a specific shim ? or is there an option to enable it?

- 362
- 3
- 14
1 Answers
I don't think there is a way to match packages with shims, but you can check the executable a shim points to, along with general information about it and what would happen if you run the shim:
shimname.exe --shimgen-noop
I tried crafting a command to check all the shims in the $env:ChocolateyInstall\bin
directory, but there's no guarantee that executables there are going to be a shim. I tried filtering out the known Chocolatey executables as well, but some packages (like putty
) drop their real executables right in the bin
folder, and won't respond to the shim parameters like you'd expect.
Looking at the Install-BinFile
cmdlet, it doesn't look like Chocolatey provides a way to track shims at all as it doesn't even do this itself. I think it uses the same logic to track automatically generated shims at package uninstall time, but any shims explicitly created with Install-BinFile
also need to have Uninstall-BinFile
called in the associated chocolateyUninstall.ps1
script or the shim won't be removed at package uninstall time.
Short of crawling the $env:ChocolateyInstall\lib\packageName
directory for potential automatic shim names, or the chocolateyInstall.ps1
/chocolateyUninstall.ps1
scripts for explicit shims, you're not going to be able to match a shim to a package.

- 19,553
- 20
- 90
- 159