Ядро Powershell и модули Powershell - PullRequest
0 голосов
/ 24 марта 2020

Мне нужно создать модуль, который может работать в Powershell 7, и использовать командлеты из Powershell 5.

Я хочу сохранить этот модуль как артефакт и опубликовать sh в артефактах AzureDevOps.

Модуль предназначен для аудита информации о кроссплатформенных системах. Проблема в том, что некоторые из командлетов Windows указаны для платформы c, например Get-WindowsFeature. Я также хочу использовать функции PowerShell Core, такие как Azure Командлеты связи Cosmos.

Как загружать функции только на определенных платформах?

Вам нужно что-то написать в C#, чтобы достичь этого, или вложить модуль для конкретной платформы c в мою главную модуль

1 Ответ

0 голосов
/ 26 марта 2020

В комментариях правильно сказано, что вы можете свернуть команду с проверкой версии. Это отличный вариант для небольшой команды. Я бы порекомендовал в качестве лучшей конструкции модуля просто иметь два модуля, по одному для каждой платформы. Это позволит вам лучше разделять свою работу и не полагаться на множество встроенных шагов logi c, которые условно выполняют действия на разных платформах. Для меня это просто чище.

Когда вы начнете работать с модулями, я настоятельно рекомендую вам использовать шаблон для bootstrap вашего проекта. Я обнаружил, что это экономит много времени и настраивает меня на лучшие практики.

Мой личный фаворит - PSModuleDevelopment , который вы можете использовать следующим образом:

Install-Module PSModuleDevelopment -Scope CurrentUser
Get-Help 'Invoke-PSMDTemplate'

Это очень похоже на структуру загрузки некоторых очень зрелых проектов, таких как dbatools и PSFramework использовать. Если вы используете это, вы получите выгоду в первую очередь от:

  • Возможность разделить все свои функции в свои файлы и легко загружать их
  • Несколько приятных улучшений для предварительной загрузки конфигураций в вашем модуле
  • Шаблон теста Pester включен

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

Удачи!

...