Копирование модуля MSOnline PowerShell в качестве обходного пути - PullRequest
0 голосов
/ 10 мая 2019

Я нахожусь в сложной ситуации, когда мне нужно установить модуль MSOnline PowerShell на ПК, а для этого сначала нужно установить NuGet. К сожалению, брандмауэр компании не доверяет веб-сайту NuGet, поэтому при установке командлеты PowerShell не выполняются.

Мне было интересно, могу ли я просто скопировать каталог, содержащий модуль MSOnline, с одного ПК на мой целевой ПК. Это жизнеспособный обходной путь? Или есть другой обходной путь?

Я понимаю, что в идеале я должен попытаться включить веб-сайт в белый список, но здесь возникает вопрос о сроках.

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

С компьютера, который имеет доступ, вы можете использовать командлет Save-Module, чтобы сохранить модуль в путь, а затем скопировать эту папку на рассматриваемый компьютер, который заблокирован. Затем вы можете поместить папку в $env:PSModulePath или загрузить ее явно, указав полный путь к папке.

На компьютере, который имеет доступ к галерее PowerShell, вы можете запустить:

Find-Module MSOnline|Save-Module -Path $home\Downloads

Затем скопируйте папку MSOnline из папки загрузок на этом компьютере на целевой компьютер и поместите ее в одну из папок, перечисленных в $env:PSModulePath, или когда вы хотите загрузить модуль, вы можете сделать это явно, определив путь к модулю.

0 голосов
/ 12 мая 2019

Как поясняется в комментарии @TheMadTechnician, вы можете скопировать модуль с $env:PSMdulePath запрошенных целевых машин.

Если у вас есть несколько компьютеров для распространения модулей, вы можете настроить собственную галерею Powershell через общий сетевой ресурс, как описано здесь (если это возможно в вашей компании). Исходя из этого, несколько компьютеров могут использовать командлеты Get-PSRepository, Find-Module -Repository MyRepository, Install-Module -Name MyModule -Repository MyRepository, .. для администрирования модулей. Я использую эту частную галерею Powershell, чтобы распространять некоторые инструменты Git о нескольких dev-машинах. Вы также можете опубликовать собственные модули Powershell в этой галерее, в качестве фона используется NuGet. Таким образом, ваша машина с доступом к NuGet может сохранить новейший модуль через Save-Module (возможно, через фоновое задание) и повторно опубликовать его в вашей частной галерее.

Вам также следует проверить, есть ли в модуле MSOnline RequiredPackages, который вам также необходимо скопировать. Вы можете сделать это через (где я использовал PowerShellGet в качестве примера):

 PS C:\> (Get-Module -ListAvailable | ? Name -eq PowerShellGet ).RequiredModules

 ModuleType Version    Name                                ExportedCommands
 ---------- -------    ----                                ----------------
 Script     1.0.0.1    PackageManagement

Может быть, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...