Как предотвратить ошибку «ПРЕДУПРЕЖДЕНИЕ. Невозможно получить токен для клиента tenantid» при запуске сценариев Powershell в Azure - PullRequest
0 голосов
/ 08 ноября 2019

Я создаю субъект-службу для использования в качестве учетной записи Runas Azure для Azure Automation с использованием сценария Powershell. Сценарий работает, однако после его завершения я получаю следующее предупреждение
ПРЕДУПРЕЖДЕНИЕ: Невозможно получить токен для tenantID клиента.

tenantID из предупреждающего сообщения - это еще один арендатор, к которому у моей учетной записи есть доступ, и имеющий несколько подписок. Однако это не связано с tenantid и подпиской, в которую я захожу.

Я попытался войти в систему через окно Powershell, затем запустить скрипт, не имея логина внутри скрипта, но получил ту же ошибку. Когда я запускаю get-AzContext в окне Powershell после запуска сценария, он отображает правильный tenantID

Функция, используемая для входа в систему, приведена ниже. идентификатор арендатора не совпадает с идентификатором, который я получаю для

function Login {
    # Log in
    $tenantid = "tenantID"
    $subscriptionId = "subscriptionID"
    $subscriptionName = "subscriptionname"
    Clear-AzContext -Force
    Message("Logging In")
    $account = $(Get-AzContext).Account
    if ([string]::IsNullOrEmpty($account)) {
        Login-AzAccount -Tenant $tenantid -Subscription $subscriptionId
    }
    # Select the subscription

    Message("Selecting the '$subscriptionName' Subscription")
    Set-AzContext $subscriptionId | Out-Null
}


I have no other references to tenantID.  The only other reference I have is for the subscriptionID, in a script which is called by the original script.
$Subscription = $(Get-AzContext).Subscription

I'd like to understand why it's trying to access the different TenantID for a token, and not to have the error when running the script

1 Ответ

0 голосов
/ 09 ноября 2019

Я уже отправил ответ. Проблема с командой Get-AzSubscription, она пытается получить доступ ко всем подпискам, к которым у вас есть доступ. Вам нужна другая команда для получения идентификатора подписки, я использовал get-azcontext для получения текущего идентификатора подписки

...