Bonjour,

je m'excuse tout d'abord si ma question paraît simple mais je ne trouve pas les réponses à mes questions.

je stocke dans une variable tous les utilisateurs ayant une licence Office spécifique.
Il me sort donc des UPN.

Ensuite, je vais récupérer dans l'AD des properties.

Pour faire cela, j'utilise des ForEach et des Get-content mais cela m'oblige à créer et manipuler des fichiers, j'aurai aimé pouvoir agir directement sur la variable.

voici mon code actuel :
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
Connect-MsolService
$UserListE1 = Get-MsolUser -All | Where-Object { ($_.Licenses).AccountSkuId -match "LicenceE1" }
$UserListE1 | Select-Object UserPrincipalName | Export-Csv -NoTypeInformation -Path "C:\_TEMP\Bin\o365_E1.csv"
 
$UsersE1 = "C:\_TEMP\Bin\o365_E1.csv"
(Get-Content $UsersE1) | select -Skip 1 | % { $_ -replace """", "" } | out-file -FilePath C:\_TEMP\Bin\o365_E1.txt -Force
 
$E1List = "C:\_TEMP\Bin\o365_E1.txt"
 
Function GetPropertiesE1 {
    ForEach ($UE1 in Get-Content $E1List) {
        Get-ADUser -filter { mail -eq $UE1 } -properties * | select DisplayName, SamAccountName, Title, Country, City, Division, Department, Manager, Enabled | Sort-Object DisplayName
    }
}
 
GetPropertiesE1 | Export-Csv "C:\_TEMP\ExtractE1Users.csv" -NoTypeInformation

j'imagine qu'il y a plus simple que cela...

j'ai essayé de faire
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
$UserListE1 = Get-MsolUser -All | Where-Object { ($_.Licenses).AccountSkuId -match "bgingenieur:STANDARDPACK" } | Select-Object UserPrincipalName

si je fais un ForEach ça me ressort bien les résultats de ma variable

Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
ForEach ($mail in $UserListE1) {$mail}

Mais impossible de faire fonctionner si je veux aller faire la même chose qu'avec mes fichiers

Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Function GetPropertiesE1 {
     ForEach ($mail in $UserListE1) {
     Get-ADUser -filter { mail -eq $mail } -properties * | select DisplayName }
}

je me retrouve avec des erreurs

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Get-ADUser : Invalid type 'System.Management.Automation.PSCustomObject'.
Parameter name: mail
At line:3 char:1
+ Get-ADUser -filter { mail -eq $mail } -properties * | select DisplayN ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-ADUser], ArgumentException
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Comm
   ands.GetADUser
Merci d'avance pour votre aide, j'espère que ce que je veux faire est bien possible

Gaëtan