【发布时间】:2020-11-24 13:07:57
【问题描述】:
Microsoft 产品的文档非常糟糕,这让我很难过,PowerShell 也不例外。到目前为止,我一直在使用不同版本的 PowerShell,但离理解不同版本还有很长的路要走,尤其是涉及到 Azure 时。
据我了解,PowerShell 5 已停产,PowerShell ISE 也已停产。按照 Microsoft 的建议,我切换到最新版本 7 和 Visual Studio Code。我不得不承认,他们合作得很好。 (我仍然想知道为什么在 Visual Studio 中开发 PowerShell 没有原生支持。)
对于 Azure,有 Azure、AzureRM、msol 和 Az 模块。后者显然是取代 Azure 和 AzureRM 的最新版本。正如我们所知,它们不能一起工作,不能向上/向下兼容,同时它们也不提供相同的功能。
现在我想使用 PowerShell 将域添加到 Azure Active Directory。我发现的唯一 cmdlet 是 New-AzureAdDomain - 它在 PowerShell 7 中不起作用。经过一些研究,我发现 this article 它告诉我不能使用 PowerShell 7,而应该使用 PowerShell 6:
对于 Azure Active Directory PowerShell for Graph 模块,您必须 使用 PowerShell 5.1 或更高版本。对于 Microsoft Azure Active Windows PowerShell 模块的目录模块,您必须使用 PowerShell 版本 5.1 或更高版本,直到 PowerShell 版本 6。您不能 使用 PowerShell 版本 7。
对我来说,PowerShell 版本及其 Azure 模块似乎是一个相当大的混乱。但我认为这可能只是因为我不了解它们实际上应该如何协同工作而看起来像这样。如果有人能对此有所了解,我将不胜感激?最初,我的问题应该是“如何使用 PowerShell 7 将域添加到 AAD”,但我希望了解其背后的概念,也许这可以帮助我自己。
【问题讨论】:
-
对于 Azure AD 相关命令,您需要安装 AzureAD 模块。这与 Az 模块不同。 docs.microsoft.com/en-us/powershell/module/azuread/…
-
值得注意的是,我正在使用AzureAd.Standard.Preview,这似乎可以与 PowerShell 7 一起使用。唯一的问题是您可能在 Az.Accounts 模块和 Azure AD 模块之间使用了conflicts,因为后者使用某些程序集的一些较新版本。有时它可以先加载较新的依赖项。我替换了模块中的旧模块,但不能将此作为任何类型的良好做法。
标签: azure powershell azure-active-directory azure-powershell