В чем разница между версиями PowerShell и их способностями управлять Azure Active Directory? - PullRequest
3 голосов
/ 04 августа 2020

Продукты Microsoft вызывают у меня проблемы из-за их невероятно плохой документации, и PowerShell не исключение. До сих пор я работал с разными версиями PowerShell, но я все еще далек от понимания различных версий, особенно когда речь идет о Azure.

Насколько я понимаю, PowerShell 5 больше не поддерживается, как и PowerShell ISE. Следуя рекомендации Microsoft, я перешел на последнюю версию 7 и Visual Studio Code. Должен признать, они неплохо работают вместе. (Тем не менее, мне интересно, почему нет встроенной поддержки для разработки PowerShell в Visual Studio.)

Для Azure были модули Azure, AzureRM, msol и Az. Последний, очевидно, является последним, заменяющим Azure и AzureRM. Как мы знаем, они не работают вместе, не совместимы по восходящей / нисходящей и в то же время не обеспечивают одинаковой функциональности.

Теперь я хотел добавить домен в Azure Active Каталог с помощью PowerShell. Единственный найденный мной командлет - это New-AzureAdDomain , который не работает в PowerShell 7. После некоторых исследований я обнаружил эту статью , в которой говорится, что я не могу использовать PowerShell 7, а должен использовать Вместо этого PowerShell 6:

Для модуля Azure Active Directory PowerShell для Graph необходимо использовать PowerShell версии 5.1 или новее. Для модуля Microsoft Azure Active Directory для модуля Windows PowerShell необходимо использовать PowerShell версии 5.1 или новее до PowerShell версии 6. Вы не можете использовать PowerShell версии 7.

Для меня версии PowerShell и его модули Azure кажутся довольно большим беспорядком. Но я предполагаю, что это может выглядеть так из-за моего непонимания того, как они на самом деле должны работать вместе. Был бы признателен, если бы кто-нибудь мог пролить свет на это? Изначально мой вопрос должен был быть примерно таким: «Как я могу добавить домен в AAD с помощью PowerShell 7», но я надеюсь понять концепцию, лежащую в основе этого, возможно, это позволит мне помочь себе.

Ответы [ 2 ]

4 голосов
/ 04 августа 2020

Это беспорядок. Прежде всего, не путайте версии WindowsPowershell и PowershellCore.

Powershell 1.0 - 5.1 - это все WindowsPowershell, что означает, что они поставляются с ОС Windows и работают только на Windows.

Powershell 6.0 + - это версии PowershellCore, которые не поставляются с какой-либо ОС (пока) и являются кроссплатформенными. Эти два типа могут сосуществовать на одной машине Windows, поскольку они даже не используют одно и то же имя для приложения exe.

Почему они разделили их? Что ж, на windows у вас есть. NET Framework, который представляет собой набор библиотек, написанных на c#, которые вы можете использовать в своих приложениях, поэтому вам не нужно писать код для всего. Однако Net Framework - это только Windows, поэтому в основном он привязан C# к Windows. Microsoft поняла, что для того, чтобы сделать C# более интересным, им необходимо сделать его кроссплатформенным, поэтому они придумали Net Core. Это кроссплатформенная версия Net Framework. Доступно на Linux, MacOs и Windows. Powershell построен на Net Framework, поэтому они увидели возможность создать новую версию Powershell, которая также является кроссплатформенной. Таким образом, WindowsPowershell основан на Net Framework, а PowershellCore основан на Net Core. Microsoft планирует объединить Net Framework и Net Core в версии 5.0. Не знаю, хотят ли они также объединить версии Powershell, но они назвали это Powershell 7, а не PowershellCore 7, как в случае с версией 6.

Основная проблема с PowershellCore заключалась в модулях, которые были частью других продуктов. . Возьмите SCCM, AD или другие. Вы получаете эти модули, имея WindowsServer и устанавливая эти функции. Или на клиентских машинах вы должны установить RSAT. Большинство этих модулей теперь доступно в версии 7.

Что касается Azure модулей, вы можете загрузить Azure модулей из https://github.com/Azure/azure-powershell/releases/latest, и вы можете использовать любую версию Powershell. Если вам нужен именно AzureAD: https://docs.microsoft.com/en-us/powershell/azure/active-directory/install-adv2?view=azureadps-2.0

Подробнее о Powershell можно узнать здесь: https://devblogs.microsoft.com/powershell/announcing-PowerShell-7-0/

0 голосов
/ 04 августа 2020

Просто обратите внимание на модули Azure. Azure претерпел большие изменения (вид V1 против V2) с добавлением Resource Manager. Старая библиотека verb-AzureNOUN предназначалась для Pre-Resource Manager Azure. В версии verb-AzureRMnoun было слишком много набирать с префиксом «AzureRM». Последняя версия verb-AzNOUN почти один к одному соответствует версии AzureRM. В основном это изменение имени.

Каждая библиотека / модуль командлетов предназначена для определенной версии PowerShell, поэтому перед использованием модуля проверьте, какая версия требуется. Версии PowerShellCore все еще находятся в стадии «незавершенной работы», если смотреть на администрирование Windows. PowerShell 5.1 по-прежнему остается моей версией «от go до», если я не работаю в среде, отличной от Windows.

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