Skip to content

PowerShell Modules

Luke Sampson edited this page Jan 22, 2017 · 4 revisions

PowerShell modules are installed like other apps, but they are also linked under ~\scoop\modules.

The ~\scoop\modules directory will be added to your $env:PSModulePath environment variable, and PowerShell should automatically detect the modules you install here using Scoop.

The directories under ~\scoop\modules aren't normal directories. Each is a directory junction which points to the currently installed version of the app/module, which is itself a directory junction pointing to the actual versioned directory. So for a module named MyPSModule you might have something like this:

~\scoop\modules\MyPSModule
  → points to ~\scoop\apps\mypsmodule\current
    → points to ~\scoop\apps\mypsmodule\1.16.0.rc2

The key part of the Scoop manifest for a PowerShell module is this:

{
...
    "psmodule": {
        "name": "NameOfTheModule"
    }
...
}

The name property is required if you use psmodule, and it should match the name of the .psd1 manifest for the PowerShell module for PowerShell to consider it "well-formed" and automatically detect the module (see here for more.)