- forum
- PowerShell
- Entraide pour les initiés
- AD user attribute updated depuis l'interface graphique mais vide en powerhsell
Question AD user attribute updated depuis l'interface graphique mais vide en powerhsell
- elde
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
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 :
Les attributs EmployeeID sont bien mis à jour depuis la GUI mmc.exe
En revanche en powershell, les attributs sont vides, meme avec un classique :(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
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
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.
- elde
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 2 ans 2 mois - il y a 2 ans 2 mois #32425
par elde
Réponse de elde sur le sujet AD user attribute updated depuis l'interface graphique mais vide en powerhsell
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
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.
- Christophe MELIN
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 26
- Remerciements reçus 4
il y a 2 ans 2 mois #32501
par Christophe MELIN
Réponse de Christophe MELIN sur le sujet AD user attribute updated depuis l'interface graphique mais vide en powerhsell
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,
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.
- forum
- PowerShell
- Entraide pour les initiés
- AD user attribute updated depuis l'interface graphique mais vide en powerhsell
Temps de génération de la page : 0.102 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- AD user attribute updated depuis l'interface graphique mais vide en powerhsell