Bonjour à tous.
Bien, un petit post pour vous décrire mon problème... Ah et pour info, je débute en PS, mais je comprends peu à peu la technique et le langage :) Soyez patients s'il vous plait :)
Nous avons récemment fais l'acquisition d'une appli liée à notre AzureAD (uniquement) pour du E-Learning. Donc, nous avons des utilisateurs "invités" qui peuvent se connecter à cette appli pour suivre nos formations.
Une fois ces invités loggués, il faut que je mette à jour leurs infos à minima pour que les managers de ces invités suivent leur formation et les relancent si besoin.
J'ai réussi grâce à des recherches sur internet et des concaténations d'infos à créer un premier script qui permet de mettre à jour les given.name et autres attributs avec SetAzureADUser et en masse à partir d'un CSV, bien sûr.
Mais je pêche sur la partie mise à jour Manager en masse.
J'ai ce script ci-dessous mais rencontre une erreur avec Set -AzureADUserManager et le pipe. Mon CSV a une colonne id avec l'ObjectId de mes utilisateurs et une autre colonne RefObjectId avec l'Id de chaque manager. J'ai essayé avec une colonne contenant userPrincipalName mais pas de résultats.
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 # Get CSV content $CSVrecords = Import-Csv C:\Temp\List_update_students.csv -Delimiter ";" # Create arrays for skipped and failed users $SkippedUsers = @() $FailedUsers = @() # Loop trough CSV records foreach ($CSVrecord in $CSVrecords) { $upn = $CSVrecord.id $user = Get-AzureADUser -Filter "-ObjectId -eq '$upn'" if ($user) { try{ $user | Set-AzureADUserManager -ObjectId $CSVrecord.id -RefObjectId $CSVrecord.RefObjectId } catch { $FailedUsers += $upn Write-Warning "$upn user found, but FAILED to update." } } else { Write-Warning "$upn not found, skipped" $SkippedUsers += $upn } } # Array skipped users # $SkippedUsers # Array failed users # $FailedUsers
Voici l'erreur que me renvoi PS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Set-AzureADUserManager : L'objet d'entrée ne peut être lié à aucun paramètre de la commande, soit parce que cette commande n'accepte pas l'entrée de pipeline, soit parce que l'entrée et ses propriétés ne correspondent à aucun des paramètres qui acceptent l'entrée de pipeline. Au caractère Ligne:14 : 17 + ... $user | Set-AzureADUserManager -ObjectId $CSVrecord.id -RefObject ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument : (class User { ...rType: Guest } :PSObject) [Set-AzureADUserManager], ParameterBindingException + FullyQualifiedErrorId : InputObjectNotBound,Microsoft.Open.AzureAD16.PowerShell.SetUserManager
J'ai eu beau chercher sur internet, cette erreur ne me dit rien de plus malheureusement. J'ai essayé d'autres combinaisons des attributs mais sans résultats.
J'espère que vous pourrez m'aider dans cette grande énigme :)
Merci pour votre lecture !!!
ElladeLyon
Partager