簡體   English   中英

如何使用 Az PowerShell 命令在多個訂閱上運行 Powershell 腳本

[英]How to run Powershell script on multiple Subscriptions Using Az PowerShell Command

我有多個 azure 租戶,每個租戶都有多個訂閱,我必須為我的所有訂閱運行一個 PowerShell 腳本。

這可以使用Azure CLI來實現,並且效果很好。

我使用Azure CLI如下;

$az_account = (az account list --query "[].[name]" -o tsv)
foreach ($account in $az_account) {
    az account set --name $account
    #<RUN SCRIPTS HERE>#
}

但在某些情況下,我必須使用Az PowerShell命令而不是Azure CLI

所以任何人都可以幫助我

  1. 如何為多個訂閱運行Az PowerShell命令
  2. Or the Az PowerShell profile file path ( same as Azure CLI which is C:\Users\%USER\.Azure\azureProfile.json ).
  1. 如何為多個訂閱運行Az PowerShell命令

您可以使用以下 PowerShell 腳本來運行多個訂閱 PowerShell 命令。

# Get the Subscription Details using Get-AzSubscription Command
Get-AzSubscription | ForEach-Object {
    # Set the context Details using Set-AzContext Command which is equalent to the az account set CLI Command
    $_ | Set-AzContext
    $subscriptionName = $_.Name
      #<RUN YOUR SCRIPTS HERE>#

}

在此處輸入圖像描述

  1. Az PowerShell配置文件路徑(與Azure CLI相同,即C:\Users\%USER\.Azure\azureProfile.json )。

請參閱此處了解配置文件路徑位置

解析度

經過幾次嘗試,終於找到了一些方法來解決我的問題。 在此處發布相同內容可能對某人有所幫助。

您可以使用以下命令連接所有訂閱

Connect-AzAccount -Tenant "xxxx-xxxxx-xxxx-xxx" -Subscription "xxxx-xxxxx-xxxx-xxx"

列出所有連接的訂閱

Get-AzContext -ListAvailable | Select-Object Name, Subscription, Tenant

在此處輸入圖像描述

如果要重命名為友好名稱,

Rename-AzContext -SourceName "Azure subscription 1 (xxxxx-xxxx-xxxx-xxxx-xxxx) - xxxxx-xxxx-xxx-xxxx-xxxx-xxx - jawad@xyz.com" -TargetName "MySubscription"

要將這些配置文件保存到文件中,

Save-AzContext -Path "C:\Users\jawad\Downloads\AzpwshProfile.json"

您可以隨時使用以下命令導入這些配置文件,(首先測試清除配置文件Clear-AzContext -Force

Import-AzContext -Path "C:\Users\jawad\Downloads\AzpwshProfile.json"

現在您可以輕松地使用for循環來設置訂閱,例如

$acc = (Get-AzContext -ListAvailable | Select-Object Name)
foreach ($account in $acc) {
>> Select-AzContext $account.Name
>> Get-AzVM | Export-Csv -Path "inventory.csv"
>> }

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM