PowerShell 版本及其管理 Azure Active Directory 的能力有何区别?

Ail*_*n79 3 powershell azure azure-powershell azure-active-directory

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 中不起作用。 经过一些研究,我发现这篇文章告诉我我不能使用 PowerShell 7,而应该使用 PowerShell 6:

对于 Azure Active Directory PowerShell for Graph 模块,必须使用 PowerShell 5.1 或更高版本。对于 Windows PowerShell 模块的 Microsoft Azure Active Directory 模块,您必须使用 PowerShell 版本 5.1 或更高版本,直到 PowerShell 版本 6。您不能使用 PowerShell 版本 7。

对我来说,PowerShell 版本及其 Azure 模块似乎是一个相当大的混乱。但我认为这可能只是因为我不了解它们实际上应该如何协同工作。如果有人可以对此有所了解,我将不胜感激?最初,我的问题应该类似于“如何使用 PowerShell 7 将域添加到 AAD”,但我希望了解其背后的概念,也许这使我能够帮助自己。

Ult*_*uki 6

这是一团糟。首先不要混淆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。微软意识到为了让 C# 更有趣,他们必须让它跨平台,所以他们想出了 Net Core。它是 Net Framework 的跨平台版本。在 Linux、MacO 和 Windows 上可用。Powershell 是基于 Net Framework 构建的,因此他们看到了创建也是跨平台的 Powershell 新版本的机会。所以WindowsPowershell是基于Net Framework的,PowershellCore是基于Net Core的。微软计划在 5.0 版中合并 Net Framework 和 Net Core。不知道他们是否也想合并Powershell版本,

PowershellCore 的主要问题是作为其他产品一部分的模块。采取 SCCM、AD 或其他。您可以通过拥有 WindowsServer 并安装这些功能来获取这些模块。或者在客户端计算机上安装 RSAT。这些模块中的大多数现在都在第 7 版中可用。

对于 Azure 模块,您可以从https://github.com/Azure/azure-powershell/releases/latest下载 Azure 模块, 并且可以使用任一版本的 Powershell。如果您特别需要 AzureAD:https ://docs.microsoft.com/en-us/powershell/azure/active-directory/install-adv2 ? view = azureadps-2.0

您可以在此处阅读有关 Powershell 的更多信息:https : //devblogs.microsoft.com/powershell/annoucing-PowerShell-7-0/