2016-05-27 9 views
5

Mam maszynę (v3, internet, brak dostępu administratora), której używałem do pobierania WMF 5.0 i konfigurowania innej maszyny (v5, brak internetu, dostęp administracyjny). Teraz chcę użyć niektórych modułów z PowerShellGet na komputerze z uruchomionym v5, ale bez połączenia z Internetem.PowerShell v5 - Jak zainstalować moduły na komputerze bez połączenia z Internetem?

Potrzebuję opcji pobrania pliku * .psm1, który można następnie skopiować i użyć. Tak jak mamy opcje do pobrania z GitHub.

Ktoś z podobnym problemem i obejściami?

Odpowiedz

6

Zainstalować Package Management Module na PowerShell 3 komputer, a następnie użyj modułu Save-Module ...

lub skonfiguruj ProGet gdzieś "na krawędzi" swojej sieci, i niech to będzie odzwierciedlać moduły, które chcesz od publiczności PowerShellGallery dla klientów wewnętrznych.

W przeciwnym razie, po prostu zbudować własny pobierania URL:

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

Można nawet wygenerować moduł proxy OData, lub po prostu użyć Invoke-restmethod do wyszukiwania:

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 
} 

Więc teraz można po prostu wykonaj to samo, co w oficjalnym module:

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

Dzięki. https://www.powershellgallery.com/api/v2/package/$Name/$Version było kluczem. – zerocool18

0

Zaktualizuj urządzenie z dostępem do Internetu do PowerShell 5.0 i użyj Save-Module, aby zapisać moduły z PowerShellGet. Ex:

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

Pozwoli to zaoszczędzić moduł (. Ex PSReadLine) do folderu, który można skopiować do innego komputera i zainstalować jak normalny moduł (patrz Installing a PowerShell Module)

+0

Nie można zaktualizować maszyny z dostępem do Internetu do wersji V5, gdyby nie tylko to. Stąd pytanie. – zerocool18

+0

Pytanie nigdy nie mówiło, że nie możesz, tylko że jeszcze tego nie zrobiłeś. Dlaczego nie możesz go zaktualizować? Poproś kogoś, aby to zrobił lub zainstaluj moduł powershellget dla ps3.0 (https://www.microsoft.com/en-us/download/details.aspx?id=51451). Jeśli nie wolno ci robić żadnych sugestii, brzmi to tak, jakbyś prawdopodobnie nie mógł instalować modułów zewnętrznych. –

+0

Mogę instalować rzeczy firm trzecich na komputerze, ale to nie jest połączone z inernetem. Nie można jednak wprowadzić żadnych zmian ani poprosić kogokolwiek o wprowadzenie zmian w urządzeniu podłączonym do Internetu. Masz pomysł, gdzie mogę pobrać pliki .psm1 bezpośrednio? – zerocool18

Powiązane problemy