How to install/update a powershell module from a local folder - set up an internal module repository

jyao picture jyao · Apr 23, 2018 · Viewed 24.8k times · Source

I need to install a PowerShell module (i.e. sqlserver) on one production box, however, the production server does not have any internet connection.

An alternative way I am using is to use save-module to save module files onto a shared folder and then copy the files from the shared folder directly to production server's PS module path

c:\program files\WindowsPowerShell\Modules

It works, but I am just wondering whether we can use the existing approach, i.e. install-module, something like

install-module -name sqlserver -repository "my shared folder"

This requirement extends to update-module as well.

Using save-module and then copy & paste seems very unreliable because I have no idea whether install-module will actually do some DLL file registration or installation.

Can any PS gurus please give some idea how to do this, i.e. using install-module without internet connection?

Thanks in advance for your time.

PS: I know there is a post at SO but it does not help me.

Answer

Eric Eskildsen picture Eric Eskildsen · Aug 29, 2019
  1. In any shell (elevated or not):

     Register-PSRepository -Name 'myRepositoryName' -SourceLocation 'C:\MyExampleFolder'
    

    All .nupkg files inside your folder are now discoverable by Install-Module.

  2. In an elevated shell (Run as Administrator):

     Install-Module 'Some-Module' -Repository 'myRepositoryName'