2016-05-27 9 views
5

Ho una macchina (v3, internet, senza accesso amministratore) che ho usato per scaricare WMF 5.0 e configurare un'altra macchina (v5, no internet, accesso amministratore). Ora, voglio utilizzare alcuni moduli da PowerShellGet sulla macchina che esegue v5 ma senza connessione a Internet.PowerShell v5 - Come installare i moduli su un computer senza connessione Internet?

Ho bisogno di un'opzione per scaricare il file * .psm1 che posso quindi copiare e utilizzare. Proprio come noi abbiamo le opzioni per scaricare da GitHub.

Chiunque abbia un problema simile e soluzioni alternative?

risposta

6

Installare il Package Management Module sul tuo PowerShell 3 macchina, quindi utilizzare Save-Module ...

Oppure impostare ProGet da qualche parte "sul bordo" della rete e fare in modo che rispecchi i moduli desiderati dal pubblico PowerShellGallery per i client solo interni.

In mancanza di ciò, basta costruire il proprio URL di download:

https://www.powershellgallery.com/api/v2/package/$Name/$Version 

È anche possibile generare un modulo proxy OData, o semplicemente usare richiamare-restmethod per la ricerca:

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 
} 

così ora si può basta fare come con il modulo ufficiale:

Find-Module Pester | Save-Module -Path ~\Downloads 
+0

Grazie. https://www.powershellgallery.com/api/v2/package/$Name/$Version era la chiave. – zerocool18

0

Aggiornare la macchina con accesso a Internet a PowerShell 5.0 e utilizzare Save-Module per salvare i moduli da PowerShellGet. Es:

Find-Module psreadline | Save-Module -Path c:\users\frode\Desktop 

Ciò farà risparmiare il modulo (. Es PSReadLine) in una cartella che è possibile copiare sul altra macchina ed installare come un modulo normale (vedi Installing a PowerShell Module)

+0

Impossibile aggiornare la macchina con accesso a Internet v5 altrimenti avrebbe tr solo questo. Da qui la domanda. – zerocool18

+0

La domanda non ha mai detto che non potevi, solo che non l'avevi ancora fatto. Perché non puoi aggiornarlo? Chiedi a qualcun altro di farlo o installa il modulo powershellget per ps3.0 (https://www.microsoft.com/en-us/download/details.aspx?id=51451). Se non ti è consentito fare uno dei suggerimenti, sembra che probabilmente non ti sia consentito installare alcun modulo di terze parti. –

+0

Posso installare cose di terze parti su una macchina ma non è collegato a inernet. Tuttavia, non è possibile apportare modifiche o chiedere a chiunque di apportare modifiche alla macchina collegata a Internet. Qualche idea su dove posso ottenere i file .psm1 direttamente? – zerocool18

Problemi correlati