Question AD user attribute updated depuis l'interface graphique mais vide en powerhsell

Plus d'informations
il y a 2 ans 2 mois - il y a 2 ans 2 mois #32424 par elde
   
Bonjour,
Je souhaite mettre à jour les EmployeeID des utilisateurs sur ActiveDirectory pour par la suite les utiliser comme filtre pour un autre script.
J'ai update les EmployeeID depuis un csv avec le script suivant : 
$OuUsers = "OU=,DC=,DC="
$employeeIDcsv = Import-CSV -Path "Path.csv" -Delimiter ";" -Encoding Default


foreach($i in $employeeIDcsv)
{
    [string]$i_email = $i.Email
    [string]$i_ID = $i.EmployeeID

    Write-Host ($i_email + " " + $i_ID)
    $aduser = (Get-ADUser -Filter {Userprincipalname -like $i_email} -SearchBase $OuUsers -Properties mail,employeeID | select *)
    try {
        Set-ADUser -Identity $ADuser.SamAccountName -EmployeeID $i_ID
        write-host ("UserID Set for "+ $i_email + " with ID  " + $i_ID)
    }
    catch {
        write-host ("Impossible to set UserID for " + $i_email + " with ID  " + $i_ID)
    }
}


Get-ADUser -SearchBase $OuUsers -filter * | Where-Object {$_.employeeID -eq $null}

Les attributs EmployeeID sont bien mis à jour depuis la GUI mmc.exe
En revanche en powershell, les attributs sont vides, meme avec un classique :
Get-ADUser -SearchBase $OuUsers {Userprincipalname -like "emailaddr"} -Properties employeeID,employeenumber
(j'ai du coup également essayé le champs employeenumber)

Dans le doute j'ai patienté une journée pour la sync des DC mais toujours vide.
Le champs apparait également vide dans Azure AD

Quelqu'un a t'il une idée de la potentielle erreur ?

Au plaisir de vous lire.
elde
Pièces jointes :
Dernière édition: il y a 2 ans 2 mois par elde.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 2 ans 2 mois - il y a 2 ans 2 mois #32425 par elde
Bonjour,

C'est encore moi
j'ai trouvé une solution de contournement qui a l'air de fonctionner dans tout les cas où l'attribut est bon coté GUI mais vide côté powershell avec les commandes classiques :
utiliser les LDAPFilter  :

PS C:\Windows\system32> get-aduser -LDAPFilter '(employeeID=19000380)' | select SID,employeeID

SID                                            employeeID
---                                            
S-1-5-21-3830839964-979359595-1535297232-11193


Comme vous pouvez le voir, le champs employeeID est bien fonctionnel puisque la commande trouve le user, meme s'il apparait vide.

En esperant que ca serve à d'autre.
Bonne journée.
elde
    
Dernière édition: il y a 2 ans 2 mois par elde.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 2 ans 2 mois #32501 par Christophe MELIN
Bonjour,

La commande Set-ADUser ... -EmployeeID $i_ID ne peut pas fonctionner car le paramètre -EmployeeID n'est pas connu par la cmdlet set-aduser. Il faut passer par les paramètres -add ou -replace en leur passant en paramètre un tableau de hash.

Exemple : Set-ADUser -Identity $ADuser.SamAccountName -replace @{ EmployeeID=$i_ID; EmployeeNumber=$i_ID }

-add permet d'ajouter des valeurs sur des propriétés pas encore initialisées
-replace permet de mettre à jour des valeurs sur des propriétés initialisées
-clear permet d'effacer des propriétés initialisées.

Pour la recherche dans le deuxième script, utilises effectivement le paramètre LDAPFilter qui est plus "précis" que le filtre standard. Dans le LDAPFilter, tu peux utiliser n'importe quel nom de champ AD alors que dans le filtre standard, tu ne peux utiliser que quelques attributs standards.

Exemple : get-aduser -ldapfilter "(EmployeeID=*)" -properties EmployeeID | select SID, EmployeeID | ft -auto
Ceci va lister TOUS les comptes de ton AD pour lesquels le champ EmployeeID n'est pas vide.

ATTENTION !!!
Par défaut la commande get-aduser ne renvoie pas tous les attributs d'un compte AD.
Si tu veux recevoir tous les attributs du compte, il faut faire get-aduser -properties *

Cordialement,

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.102 secondes
Propulsé par Kunena