17
votes

This is with respect to this question which I had asked earlier - Powershell: Installing Modules on Target System

  • What is the default module load path ? Now after so many days, it has started giving this error (from my C# code)

    Cannot find path 'C:\Users\angshuman\Documents\WindowsPowerShell\Modules\MyPSModules\MyPsModules.‌​psd1' because it does not exist.

    All the while it was nicely loading from the SysWow64 folder path
  • Why it is suddenly searching in user folder rather than Windows folder?

I am executing the same code via C# on a Windows 7 64-bit OS

    _ps = PowerShell.Create();   
    _ps.AddScript("Import-Module MyPSModules -PassThru");
    Collection<PSObject> psObjects = _ps.Invoke();
2

2 Answers

28
votes

And if you want to have them to have a better readability you can use this:

$env:PSModulePath.split(';')

enter image description here

25
votes

$env:psmodulePath is the automatic variable which holds the path used to discover modules. If it's not set, PowerShell looks in c:\windows\system32\WindowsPowerShell\v1.0\modules and MyDocuments\WindowsPowerShell\modules.

So it should by default always be looking in both places.

I haven't done much 32-on-64 coding, but I could see it using SysWow64 (instead of System32) if you were running a 32-bit app on a 64-bit OS.