I've a machine (v3, internet, no admin access) which I used to download WMF 5.0 and set up another machine(v5, no internet, admin access). Now, I want to use some modules from PowerShellGet on the machine running v5 but no internet connection.
I need an option to download *.psm1 file which I can then copy over and use. Just like we have options to download from GitHub.
Anyone with a similar issue and any workarounds ?
If you want the module to be accessed only by a particular user, this must be copied into “C:\Users\THEUSERNAME\Documents\WindowsPowerShell\Modules”. Because all the necessary files are already located in the “Modules” folder, PowerShell will install it from there, not requiring an internet connection.
To install PowerShell modules manually, you first need to determine your current PowerShell module directory path, download your new module to that path, and invoke the import-module command to let windows know it's there.
Install the Package Management Module on your PowerShell 3 machine, and then use Save-Module ...
Or set up ProGet somewhere "on the edge" of your network, and have it mirror the modules you want from the public PowerShellGallery for your internal-only clients.
Failing that, just build your own download URL:
https://www.powershellgallery.com/api/v2/package/$Name/$Version
You can even generate an OData proxy module, or just use invoke-restmethod to search:
function Find-Module {
param($Name)
invoke-restmethod "https://www.powershellgallery.com/api/v2/Packages?`$filter=Id eq '$name' and IsLatestVersion" |
select-Object @{n='Name';ex={$_.title.'#text'}},
@{n='Version';ex={$_.properties.version}},
@{n='Uri';ex={$_.Content.src}}
}
function Save-Module {
param(
[Parameter(ValueFromPipelineByPropertyName=$true,Mandatory=$true)]
$Name,
[Parameter(ValueFromPipelineByPropertyName=$true,Mandatory=$true)]$Uri,
[Parameter(ValueFromPipelineByPropertyName=$true)]$Version="",
[string]$Path = $pwd
)
$Path = (Join-Path $Path "$Name.$Version.nupkg")
Invoke-WebRequest $Uri -OutFile $Path
Get-Item $Path
}
So now you can just do the same as with the official module:
Find-Module Pester | Save-Module -Path ~\Downloads
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With