Question
Copier un attribut d'un compte utilisateur
- YELLOWDOG
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 3 ans 10 mois #29418
par YELLOWDOG
Copier un attribut d'un compte utilisateur a été créé par YELLOWDOG
Bonjour,
Je cherche comment à partir de l'attribut ATTR1 d'un compte utilisateur, d'extraire les 10 premiers caractères et de copier ces dix caractères dans un autre attribut ATTR2.
Merci pour votre retour.
Je cherche comment à partir de l'attribut ATTR1 d'un compte utilisateur, d'extraire les 10 premiers caractères et de copier ces dix caractères dans un autre attribut ATTR2.
Merci pour votre retour.
Connexion ou Créer un compte pour participer à la conversation.
- rhiwotar
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 96
- Remerciements reçus 1
il y a 3 ans 10 mois #29423
par rhiwotar
Réponse de rhiwotar sur le sujet Re:Copier un attribut d'un compte utilisateur
Je pense qu'un truc comme ça devrais t'aller
[code:1]$User = get-aduser TonUser
$Valeur = $User.ATTR1.substring(0,10)
set-aduser -replace @{ATTR2 = $Valeur}[/code:1]<br><br>Message édité par: rhiwotar, à: 13/11/19 15:20
[code:1]$User = get-aduser TonUser
$Valeur = $User.ATTR1.substring(0,10)
set-aduser -replace @{ATTR2 = $Valeur}[/code:1]<br><br>Message édité par: rhiwotar, à: 13/11/19 15:20
Connexion ou Créer un compte pour participer à la conversation.
- YELLOWDOG
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 3 ans 10 mois #29432
par YELLOWDOG
Réponse de YELLOWDOG sur le sujet Re:Copier un attribut d'un compte utilisateur
Je voudrais que ce script s'applique à l'ensemble des utilisateurs définits dans le fichier PROD_USERS.csv
Par contre, ça ne fonctionne pas.
PS T:\Scripts\POWERSHELL> T:\Scripts\POWERSHELL\CopyTenFirstCaractersFromSamaccountnameToPagerField.ps1
Impossible d’appeler une méthode dans une expression Null.
Au caractère T:\Scripts\POWERSHELL\CopyTenFirstCaractersFromSamaccountnameToPagerField.ps1:18 : 1
+ $Valeur = $User.Description.substring(0,10)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (
[], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
CN=USERS1,OU=Administrateurs,DC=MonDomaine,DC=com
Impossible d’appeler une méthode dans une expression Null.
Au caractère T:\Scripts\POWERSHELL\CopyTenFirstCaractersFromSamaccountnameToPagerField.ps1:18 : 1
+ $Valeur = $User.Description.substring(0,10)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (
[], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
[code:1]Import-Module ActiveDirectory
$UserList = Import-Csv -Path \"C:\temp\PROD_USERS.csv\"
FOREACH ($Person in $UserList)
$User = Get-AdUser -identity $Person.samaccountname -Properties samaccountname
$Valeur = $User.Description.substring(0,10)
write-host $user
}
[/code:1]
Une petite idée ?
Message édité par: YELLOWDOG, à: 14/11/19 08:18
Message édité par: YELLOWDOG, à: 14/11/19 08:19<br><br>Message édité par: YELLOWDOG, à: 14/11/19 08:21
Par contre, ça ne fonctionne pas.
PS T:\Scripts\POWERSHELL> T:\Scripts\POWERSHELL\CopyTenFirstCaractersFromSamaccountnameToPagerField.ps1
Impossible d’appeler une méthode dans une expression Null.
Au caractère T:\Scripts\POWERSHELL\CopyTenFirstCaractersFromSamaccountnameToPagerField.ps1:18 : 1
+ $Valeur = $User.Description.substring(0,10)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (

+ FullyQualifiedErrorId : InvokeMethodOnNull
CN=USERS1,OU=Administrateurs,DC=MonDomaine,DC=com
Impossible d’appeler une méthode dans une expression Null.
Au caractère T:\Scripts\POWERSHELL\CopyTenFirstCaractersFromSamaccountnameToPagerField.ps1:18 : 1
+ $Valeur = $User.Description.substring(0,10)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (

+ FullyQualifiedErrorId : InvokeMethodOnNull
[code:1]Import-Module ActiveDirectory
$UserList = Import-Csv -Path \"C:\temp\PROD_USERS.csv\"
FOREACH ($Person in $UserList)
$User = Get-AdUser -identity $Person.samaccountname -Properties samaccountname
$Valeur = $User.Description.substring(0,10)
write-host $user
}
[/code:1]
Une petite idée ?
Message édité par: YELLOWDOG, à: 14/11/19 08:18
Message édité par: YELLOWDOG, à: 14/11/19 08:19<br><br>Message édité par: YELLOWDOG, à: 14/11/19 08:21
Connexion ou Créer un compte pour participer à la conversation.
- rhiwotar
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 96
- Remerciements reçus 1
il y a 3 ans 10 mois #29437
par rhiwotar
Réponse de rhiwotar sur le sujet Re:Copier un attribut d'un compte utilisateur
il te manque un { entre ta condition et le contenu de la boucle de ton foreach à la 3e ligne
pour le substring, il faut mettre un point à la place de la virgule, je t'ai envoyé ça de tête sans vérifier, désolé.
Pour la description, il faut que tu l'ajoute dans tes properties supplémentaires avec le SAM car, par defaut, il n'apparait pas (chez moi en tout cas).
j'ai testé sur mon AD et j'ai rien d'autres qui coince, n'hesite pas à dire si ça arche ou si t'as besoin d'aide pour un autre bloquage
pour le substring, il faut mettre un point à la place de la virgule, je t'ai envoyé ça de tête sans vérifier, désolé.

Pour la description, il faut que tu l'ajoute dans tes properties supplémentaires avec le SAM car, par defaut, il n'apparait pas (chez moi en tout cas).
j'ai testé sur mon AD et j'ai rien d'autres qui coince, n'hesite pas à dire si ça arche ou si t'as besoin d'aide pour un autre bloquage

Connexion ou Créer un compte pour participer à la conversation.
- YELLOWDOG
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 3 ans 10 mois #29438
par YELLOWDOG
Réponse de YELLOWDOG sur le sujet Re:Copier un attribut d'un compte utilisateur
Merci beaucoup pour ton aide.
Le script ci-dessous corrigé fonctionne à merveille.
[code:1]
Import-Module ActiveDirectory
$UserList = Import-Csv -Path \"C:\temp\PROD_USERS.csv\"
FOREACH ($Person in $UserList)
{
$User = Get-AdUser -identity $Person.samaccountname -Properties samaccountname,description,pager
$Valeur = $User.description.substring(0,10)
set-aduser $Person.samaccountname -replace @{pager = $Valeur}
}
[/code:1]
Le script ci-dessous corrigé fonctionne à merveille.
[code:1]
Import-Module ActiveDirectory
$UserList = Import-Csv -Path \"C:\temp\PROD_USERS.csv\"
FOREACH ($Person in $UserList)
{
$User = Get-AdUser -identity $Person.samaccountname -Properties samaccountname,description,pager
$Valeur = $User.description.substring(0,10)
set-aduser $Person.samaccountname -replace @{pager = $Valeur}
}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.047 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Copier un attribut d'un compte utilisateur