2016-05-27 2 views
5

У меня есть машина (v3, интернет, без доступа администратора), которую я использовал для загрузки WMF 5.0 и настроил другую машину (v5, без Интернета, доступ администратора). Теперь я хочу использовать некоторые модули из PowerShellGet на машине, работающей под управлением v5, но без подключения к Интернету.PowerShell v5 - Как установить модули на компьютер без подключения к Интернету?

Мне нужна опция для загрузки файла * .psm1, который я могу затем скопировать и использовать. Как и у нас есть варианты для загрузки с GitHub.

Любой, у кого есть аналогичная проблема и какие-либо обходные пути?

ответ

6

Установите Package Management Module на вашем PowerShell 3, а затем используйте Save-Module ...

Или настройте ProGet где-нибудь «на краю» вашей сети и попробуйте зеркалировать модули, которые вы хотите от общественности, PowerShellGallery для ваших внутренних клиентов.

В противном случае, просто создать свой собственный скачать URL:

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

Вы даже можете создать модуль прокси OData, или просто использовать Invoke-restmethod для поиска:

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 
} 

Итак, теперь вы можете просто сделайте то же самое, что и в официальном модуле:

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

Спасибо. https://www.powershellgallery.com/api/v2/package/$Name/$Version был ключом. – zerocool18

0

Обновите свою машину с доступом в Интернет к PowerShell 5.0 и используйте Save-Module для сохранения модулей от PowerShellGet. Пример:

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

Это позволит сохранить модуль (. Ех PSReadLine) к папке, которую вы можете скопировать на другую машину и установить как обычный модуль (см Installing a PowerShell Module)

+0

Невозможно обновить машину с доступом в Интернет к v5 else, это только. Отсюда вопрос. – zerocool18

+0

Вопрос никогда не говорил, что вы не можете, только что вы еще этого не сделали. Почему вы не можете его обновить? Попросите кого-нибудь сделать это или установите модуль powershellget для ps3.0 (https://www.microsoft.com/en-us/download/details.aspx?id=51451). Если вам не разрешено делать какие-либо предложения, это звучит так, как будто вам, вероятно, не разрешено устанавливать сторонние модули вообще. –

+0

Я могу установить сторонние вещи на машине, но это не связано с inernet. Но, не может вносить какие-либо изменения или просить кого-либо вносить изменения в машину, подключенную к Интернету. Любая идея, где я могу напрямую получить файлы .psm1? – zerocool18

Смежные вопросы