2
votes

Select-AzureRmSubscription: veuillez fournir un locataire valide ou un abonnement valide

J'ai créé le Runbook Powershell et ajouté tous les détails requis et les valeurs valides. Je suis toujours confronté à l'erreur pour la commande Select-AzureRmSubscription . L'erreur que je reçois tout le temps est

Select-AzureRmSubscription: veuillez fournir un locataire valide ou un abonnement valide.

J'utilise le paramètre de connexion ci-dessous dans le runbook Powershell:

$connectionName = "AzureRunAsConnection"

try
{

    # Get the connection "AzureRunAsConnection "

    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName 

    "Logging in to Azure..."

    Add-AzureRmAccount -ServicePrincipal -TenantId $servicePrincipalConnection.TenantId -ApplicationId
    $servicePrincipalConnection.ApplicationId -CertificateThumbprint
    $servicePrincipalConnection.CertificateThumbprint
}
catch {

    if (!$servicePrincipalConnection) 
    {

        $ErrorMessage = "Connection
        $connectionName not found."

        throw $ErrorMessage

    } else{

        Write-Error -Message $_.Exception

        throw $_.Exception
    }
}


fetch-group-memberships | Select-Object UserName, PrincipalName, GroupName, AzureGroupName |Sort-Object GroupName| Export-Csv -NoTypeInformation -Path
'MEMBERSHIP.csv' 

#=======================================================================================

# Select the subscription you are going to work with

#=======================================================================================
Select-AzureRmSubscription -SubscriptionId
"[removed for security purpose]"

#Get-AzureRmSubscription -SubscriptionName "BIG" | Select-AzureRmSubscription

#=======================================================================================

# Set the Current Storage Account to the approperiate location

#=======================================================================================

Set-AzureRmCurrentStorageAccount -StorageAccountName devapacbi01 -ResourceGroupName dev-rgp-apac-01

#=======================================================================================

# Capture the file that is local to automation and save to Storage Blob

#=======================================================================================

Set-AzureStorageBlobContent -Container bi-app-carm-im -File ADGROUP_MEMBERSHIP.csv -Blob _MEMBERSHIP_AL.csv -Force

Même si l'ID d'abonnement est correct, il continue de générer une erreur comme ci-dessus. p >


10 commentaires

Si vous exécutez le runbook dans le portail, vous êtes déjà dans l'abonnement, pas besoin d'utiliser Select-AzureRmSubscription , alors cela fonctionnera correctement.


Si l'abonnement que vous sélectionnez appartient à votre locataire actuel?


@CharlesXu: Oui. cet abonnement est dans le locataire actuel


@JoyWang: J'ai essayé de supprimer la commande Select-AzureRmSubscription du script, puis je suis confronté à l'erreur ci-dessous pour la commande suivante: Set-AzureRmCurrentStorageAccount: 'this.Client.SubscriptionId' ne peut pas être nul. À la ligne: 147 car: 1


Le runbook et le stockage que vous avez utilisés sont-ils dans le même abonnement?


@JoyWang, oui, ça l'est.


Vous pouvez obtenir tous les abonnements dans le client actuel avec la commande Get-AzSubscription -TenantId "xxxx-xxxx-xxxx-xxxx" pour vérifier si l'abonnement est correct.


En fait, qu'est-ce que tu veux faire? Télécharger le fichier vers le stockage d'objets blob?


@JoyWang, j'ai essayé d'obtenir la valeur de l'ID d'abonnement dans la variable à l'aide de Get-AzureRmSubscription -TenantId "xxxx-xxxx-xxxx-xxxx" et de transmettre cette valeur de variable à Select-AzureRmSubscription mais même erreur


$ currentAzureContext = Get-AzureRmContext $ tenant = $ currentAzureContext.Tenant.Id Select-AzureRmSubscription -SubscriptionId $ tenant


3 Réponses :


2
votes

cela signifie que vous n'êtes pas autorisé à le faire. vous devez attribuer les autorisations appropriées au compte que vous utilisez pour le runbook


4 commentaires

Mon compte a un rôle de contributeur, ce qui est, je suppose, suffisant pour le faire.


peu importe ce que possède votre compte, le runbook azure n'a pas d'autorisations


Alors, comment pouvons-nous utiliser la connexion qui est créée pour utiliser le compte de service actuel pour se connecter à l'application?


désolé, je ne comprends pas la question



0
votes

Vous n'avez pas besoin de Select-AzureRmSubscription car la connexion au runbook n'est liée qu'à l'abonnement.

Gardez également au milieu que le runbook s'exécute sur une configuration d'environnement pour exécuter votre script, je préfère rester à l'écart des commandes d'environnement Set .

La suppression de la ligne d'abonnement et la correction des lignes ci-dessous devraient fonctionner.

$ storageAccount = Get-AzureRmStorageAccount -StorageAccountName devapacbi01 -ResourceGroupName dev-rgp-apac-01

Set-AzureStorageBlobContent -Container bi-app-carm-im -File ADGROUP_MEMBERSHIP.csv -Blob _MEMBERSHIP_AL.csv -Context $ storageAccount.Context -Force

J'espère que cela vous aidera.


2 commentaires

Bonjour, je suis fatigué de la solution ci-dessus, mais j'obtiens maintenant l'erreur ci-dessous: Get-AzureRmStorageAccount: 'this.Client.SubscriptionId' ne peut pas être nul. À la ligne: 154 char: 19 + ... geAccount = Get-AzureRmStorageAccount -StorageAccountName airliquides ... CategoryInfo: CloseError: (:) [Get-AzureRmStorageAccount], ValidationException Microsoft.Azure.Commands.Management.Storage.GetAzureStorageA‌ ccountCommand Set -AzureStorageBlobContent: impossible d'obtenir le contexte de stockage. Veuillez transmettre un contexte de stockage ou définir le


Votre connexion est désactivée, les commandes ont fonctionné dans mon runbook. Regardez attentivement la connexion. i.imgur.com/oHzoG8K.png



0
votes

C'est résolu! Vous aviez raison, c'était un problème avec les autorisations correctes avec le compte Automation uniquement. Nous devrions avoir un accès en tant que contributeur sur votre compte de stockage. Après avoir donné les bonnes autorisations à l'automatisation RunAs (contributeur sur votre compte de stockage), cela a fonctionné et s'est exécuté avec succès. Merci à vous tous.


0 commentaires