none
Changer le DisplayName avec un script PowerShell RRS feed

  • Question

  • Bonjour,

    Il y a certains utilisateurs qui ont le nom et le prénom inversés dans le DisplayName, j'aimerais dans un premier temps récupérer le nom des utilisateurs concernés dans un fichier CSV grâce à un script PowerShell.

    Je suis tout nouveau dans le monde du PowerShell, donc je ne comprends pas encore bien les syntaxes utilisées.

    Pouvez-vous m'aider ?

    Merci, Julien.


    lundi 18 avril 2016 12:14

Réponses

  • un début de piste:

    import-module activedirectory
    $NoCorrectDisplayname = @()
    $AllUsers = Get-ADUser -Filter * -Properties Displayname | select samaccountname, givenname, surname, displayname
    foreach ($User in $AllUsers) {
    	$TrueDisplayName = "$($User.surname), $($User.givenname)"
    	if ($($User.Displayname) -ne $TrueDisplayName) {
    		write-host "Le displayname de l'utilisateur: " -nonewline
    		write-host "$($User.SamAccountName)" -nonewline -foregroundcolor yellow
    		write-host " n'est pas correct"
    		write-host "         Display name: $($User.Displayname)" -foregroundcolor red
    		write-host "Expected Display name: $TrueDisplayName" -foregroundcolor green
    		$user | Add-Member -MemberType NoteProperty -Name "CorrectDisplayName" -Value $TrueDisplayName
    		$NoCorrectDisplayname += $user
    	}
    	
    }
    $NoCorrectDisplayname | export-csv -delimiter ";" -notypeinformation -encoding UTF8 -path c:\UsersToCorrect.csv

    B.


    • Modifié Bawilanemo mardi 19 avril 2016 14:26
    • Proposé comme réponse matteu31400 mardi 28 juin 2016 20:41
    • Marqué comme réponse Julien OZBAY jeudi 13 octobre 2016 13:37
    mardi 19 avril 2016 14:26

Toutes les réponses

  • Tu peux t'aider de cet article pour exporter les infos qui t'interesse avec PowerSchell.

    http://pbarth.fr/node/150

    lundi 18 avril 2016 15:37
  • Merci pour le lien.

    Malheureusement, je ne trouve pas les infos que je recherche. J'ai commencé un début de script, mais je ne sais pas du tout si les syntaxes sont bonnes.

    Je check en premier le DisplayName que je mets dans une variable $dn, puis je fais pareil pour le GivenName ($gn) et le Surname ($sn).

    Et c'est là que je bloque, normalement le DisplayName devrait se présenter cet ordre : "Surname, GivenName".

    J'aimerais donc checker dans mon if les DisplayName qui ne respectent pas cet ordre.

    mardi 19 avril 2016 08:42
  • un début de piste:

    import-module activedirectory
    $NoCorrectDisplayname = @()
    $AllUsers = Get-ADUser -Filter * -Properties Displayname | select samaccountname, givenname, surname, displayname
    foreach ($User in $AllUsers) {
    	$TrueDisplayName = "$($User.surname), $($User.givenname)"
    	if ($($User.Displayname) -ne $TrueDisplayName) {
    		write-host "Le displayname de l'utilisateur: " -nonewline
    		write-host "$($User.SamAccountName)" -nonewline -foregroundcolor yellow
    		write-host " n'est pas correct"
    		write-host "         Display name: $($User.Displayname)" -foregroundcolor red
    		write-host "Expected Display name: $TrueDisplayName" -foregroundcolor green
    		$user | Add-Member -MemberType NoteProperty -Name "CorrectDisplayName" -Value $TrueDisplayName
    		$NoCorrectDisplayname += $user
    	}
    	
    }
    $NoCorrectDisplayname | export-csv -delimiter ";" -notypeinformation -encoding UTF8 -path c:\UsersToCorrect.csv

    B.


    • Modifié Bawilanemo mardi 19 avril 2016 14:26
    • Proposé comme réponse matteu31400 mardi 28 juin 2016 20:41
    • Marqué comme réponse Julien OZBAY jeudi 13 octobre 2016 13:37
    mardi 19 avril 2016 14:26
  • Merci pour cette piste !

    Juste une question, je ne comprends pas très bien la signification de cette ligne, que fait-elle ? 

    $user | Add-Member -MemberType NoteProperty -Name "CorrectDisplayName" -Value $TrueDisplayName
    mercredi 20 avril 2016 08:21
  • Dans chaque boucle foreach, la variable -$User contient quatre champs:

     samaccountname, givenname, surname, displayname

    On lui ajoute le champs CorrectDisplayName qui est la concaténation de surname, d'une virgule et d'un espace et du givenname

    C'est juste pour ajouter l'info dans le CSV.


    mercredi 20 avril 2016 12:13
  • Merci pour ces infos :)

    Le script fonctionne super bien !

    vendredi 22 avril 2016 14:33