A note to self by Michiel van Oosterhout, last updated on .

Windows PowerShell

Executable %SYSTEMROOT%\system32\WindowsPowerShell\v1.0\powershell.exe
Base modules 1 %SYSTEMROOT%\system32\WindowsPowerShell\v1.0\Modules\
Modules %PROGRAMFILES%\WindowsPowerShell\Modules\
%USERPROFILE%\Documents\WindowsPowerShell\Modules\
Scripts 2 %PROGRAMFILES%\WindowsPowerShell\Scripts
%USERPROFILE%\Documents\WindowsPowerShell\Scripts
Package providers 3 %PROGRAMFILES%\PackageManagement\ProviderAssemblies\
%LOCALAPPDATA%\PackageManagement\ProviderAssemblies\
NuGet package sources 4 %APPDATA%\NuGet\NuGet.config
NuGet packages %PROGRAMFILES%\PackageManagement\NuGet\Packages\
%LOCALAPPDATA%\PackageManagement\NuGet\Packages\
NuGet.exe 5 %ALLUSERSPROFILE%\Microsoft\Windows\PowerShell\PowerShellGet\
%LOCALAPPDATA%\Microsoft\Windows\PowerShell\PowerShellGet\

PowerShell

Windows

Executable %PROGRAMFILES%\PowerShell\7\pwsh.exe
Base modules %PROGRAMFILES%\PowerShell\7\Modules\
Modules %PROGRAMFILES%\PowerShell\Modules\
%USERPROFILE%\Documents\PowerShell\Modules\
Scripts %PROGRAMFILES%\PowerShell\Scripts
%USERPROFILE%\Documents\PowerShell\Scripts
NuGet packages %PROGRAMFILES%\PackageManagement\NuGet\Packages\
%LOCALAPPDATA%\PackageManagement\NuGet\Packages\
NuGet.exe %ALLUSERSPROFILE%\Microsoft\Windows\PowerShell\PowerShellGet\
%LOCALAPPDATA%\Microsoft\Windows\PowerShell\PowerShellGet\

macOS

Executable /usr/local/microsoft/powershell/7/pwsh
Base modules /usr/local/microsoft/powershell/7/Modules/
Modules /usr/local/share/powershell/Modules/
$HOME/.local/share/powershell/Modules/
Scripts /usr/local/share/powershell/Scripts
$HOME/.local/share/powershell/Scripts
NuGet packages /usr/local/share/PackageManagement/NuGet/Packages/
$HOME/.local/share/PackageManagement/NuGet/Packages/

  1. Base modules are built in. ↩︎

  2. Added to the PATH environment variable when a PowerShellGet script package is first installed. ↩︎

  3. These package providers are installed using the Bootstrap package provider. ↩︎

  4. Managed by Register-PackageSource -Provider "nuget" and by the NuGet executable. ↩︎

  5. When installed via the NuGet.exe is required to continue prompt. ↩︎