Création de Temporary access password par script

Fermé
spartacus - 15 mai 2023 à 19:00

Bonjour,

J'essaie depuis 2 jours de créer un script qui me permettrait de créer des Temporarry Access Password sur Azure AD pour 2000 utilisateurs environ, ci-dessous le script que j'ai pu créer avec mes compétences un peu limité sur powershell :

# Specifie le chemin du fichier Excel contenant la liste des UPN des utilisateurs
$ExcelFilePath = "C:\Temp\Users.xlsx"
# Specifie le nom de la feuille de calcul dans le fichier Excel
$SheetName = "Users"
# Recupere la liste des UPN des utilisateurs a partir de la colonne A de la feuille de calcul
$UPNs = (Import-Excel -Path $ExcelFilePath -WorksheetName $SheetName | Select-Object -ExpandProperty UPN)

foreach ($UPN in $UPNs) {
    # Récupérer l'objet utilisateur correspondant à l'UPN
    $User = Get-AzureADUser -ObjectId $UPN
    if ($User -ne $null) {
        # Créer un Temporary Access Pass pour l'utilisateur
        $TAP = New-MgUserAuthenticationTemporaryAccessPassMethod -UserId $User.ObjectId -IsUsableOnce -LifetimeInMinutes 43200
        # Afficher le Temporary Access Pass pour l'utilisateur
        Write-Host "Temporary Access Pass pour $($User.UserPrincipalName) : $($TAP.TemporaryAccessPass)"

        # Ajouter le Temporary Access Pass à côté de l'UPN dans le fichier Excel
        $rowIndexObject = (Import-Excel -Path $ExcelFilePath -WorksheetName $SheetName | where {$_.UPN -eq $UPN}).PSElementType
        if ($rowIndexObject -ne $null) {
            $rowIndex = $rowIndexObject[0].RowIndex
            $cellAddress = "TAP$rowIndex"
            $excel = Get-ExcelPackage -Path $ExcelFilePath
            $excel.Workbook.Worksheets[$SheetName].Cells[$cellAddress].Value = $TAP.TemporaryAccessPass
            Save-ExcelPackage -ExcelPackage $excel -Path $ExcelFilePath
        } else {
            Write-Host "L'UPN $UPN n'existe pas dans le fichier Excel."
        }
    }
    else {
        # Si l'utilisateur n'a pas été trouvé, afficher un message d'erreur
        Write-Host "Utilisateur avec UPN $($UPN) non trouvé !"
    }
}

Le script fonctionne très bien et il arrive a récupérer les UPN depuis mon fichier excel puis de créer les temporary access password mais il n'arrive pas a copier le résultat sur le fichier comme demandé, ci-dessous l'erreur qu'il me renvoie :

Utilisateur avec UPN ***@*** non trouvé !
Utilisateur avec UPN ***@*** non trouvé !

Pourtant il arrive très bien a les trouvers pour créer les TAP mais bizarrement il n'arrive pas a les retrouver pour écrire la sortie du TAP, et je n'ai malheureusement plus d'idée sur comment le résoudre,

Mon fichier excel est comme suit :

UPN                                TAP

***@***

***@***

j'ai vraiment besoin d'aide pour pouvoir finir le script,

Merci d'avance,

Cordialement.

A voir également: