Question Copier un attribut d'un compte utilisateur

Plus d'informations
il y a 4 ans 5 mois #29418 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.

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

Plus d'informations
il y a 4 ans 5 mois #29423 par rhiwotar
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

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

Plus d'informations
il y a 4 ans 5 mois #29432 par YELLOWDOG
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&gt; 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 \&quot;C:\temp\PROD_USERS.csv\&quot;
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.

Plus d'informations
il y a 4 ans 5 mois #29437 par rhiwotar
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é.:S

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.

Plus d'informations
il y a 4 ans 5 mois #29438 par YELLOWDOG
Merci beaucoup pour ton aide.

Le script ci-dessous corrigé fonctionne à merveille.

[code:1]
Import-Module ActiveDirectory
$UserList = Import-Csv -Path \&quot;C:\temp\PROD_USERS.csv\&quot;
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.071 secondes
Propulsé par Kunena