以用户身份使用 PowerShell 连接到 Azure Stack Hub

可以使用 PowerShell 连接到 Azure Stack Hub 以管理 Azure Stack Hub 资源。 例如,可以使用 PowerShell 订阅产品/服务、创建虚拟机(VM)和部署 Azure 资源管理器模板。

在开始之前,请确保满足以下先决条件:

  • 使用 Microsoft Entra ID 或 Active Directory 联合身份验证服务(AD FS)进行连接。
  • 注册资源提供程序。
  • 测试连接。

使用 PowerShell 进行连接的先决条件

如果通过 VPN 连接,请从基于 Windows 的外部客户端配置这些先决条件。

请确保将以下脚本变量替换为 Azure Stack Hub 配置中的值:

  • Microsoft Entra 租户名称:用于管理 Azure Stack Hub 的 Microsoft Entra 租户的名称。 例如,yourdirectory.partner.onmschina.cn
  • Azure 资源管理器终结点:若要获取 Azure Stack Hub 集成系统的此值,请联系服务提供商。

使用 Microsoft Entra ID 连接到 Azure Stack Hub

    Add-AzEnvironment -Name "AzureStackUser" -ArmEndpoint "https://management.local.azurestack.external"
    # Set your tenant name
    $AuthEndpoint = (Get-AzEnvironment -Name "AzureStackUser").ActiveDirectoryAuthority.TrimEnd('/')
    $AADTenantName = "<myDirectoryTenantName>.partner.onmschina.cn"
    $TenantId = (invoke-restmethod "$($AuthEndpoint)/$($AADTenantName)/.well-known/openid-configuration").issuer.TrimEnd('/').Split('/')[-1]

    # After signing in to your environment, Azure Stack Hub cmdlets
    # can be easily targeted at your Azure Stack Hub instance.
    Connect-AzAccount -EnvironmentName "AzureStackUser" -TenantId $TenantId

使用 AD FS 连接到 Azure Stack Hub

# Register an Azure Resource Manager environment that targets your Azure Stack Hub instance
Add-AzEnvironment -Name "AzureStackUser" -ArmEndpoint "https://management.local.azurestack.external"

# Sign in to your environment
Connect-AzAccount -EnvironmentName "AzureStackUser"

注册资源提供程序

不会自动为没有通过门户部署任何资源的新用户订阅自动注册资源提供程序。 可以通过运行以下脚本显式注册资源提供程序:

foreach($s in (Get-AzSubscription)) {
        Select-AzSubscription -SubscriptionId $s.SubscriptionId | Out-Null
        Write-Progress $($s.SubscriptionId + " : " + $s.SubscriptionName)
Get-AzResourceProvider -ListAvailable | Register-AzResourceProvider
    }

备注

AD FS 仅支持使用用户标识进行交互式身份验证。 如果需要凭据对象,则必须使用服务主体 (SPN)。 有关将 Azure Stack Hub 和 AD FS 设置为标识管理服务的服务主体的详细信息,请参阅 管理 AD FS 应用标识

测试连接性

设置所有内容后,使用 PowerShell 在 Azure Stack Hub 中创建资源来测试连接。 作为测试,请为应用程序创建资源组并添加 VM。 运行以下命令以创建名为MyResourceGroup的资源组:

New-AzResourceGroup -Name "MyResourceGroup" -Location "Local"

后续步骤