none
[RESOLU] Modification multiple attributs AD via import-csv RRS feed

  • Question

  • Bonjour,

    Je travaille sur un petit script me permettant de mettre à jour, via un fichier csv, plusieurs attributs.

    Sauf que dans mon fichier csv j'ai un risque que ma cellule soit vide. Et mon script n'aime pas quand c'est vide.

    Voici ce que j'ai :

    $users = Import-Csv -Path C:\test.csv -delimiter ";"             
                
    foreach ($user in $users) {            
    Get-ADUser -Filter "SamAccountName -eq '$($user.samaccountname)'"`
    -Properties * -SearchBase "mondomaine" |            
      Set-ADUser -surname $($user.surname) `
      -givenname $($user.givenname) `
      -initials $($user.initials) `
      -Description $($user.Description) `
      -office $($user.office) `
      -officephone $($user.officephone) `
      -EmailAddress $($user.EmailAddress) `
      -StreetAddress $($user.StreetAddress)`
      -City $($user.City) `
      -State $($user.State) `
      -PostalCode $($user.PostalCode)`
      -Title $($user.Title) `
      -Department $($user.Department) `
      -Company $($user.Company) `
      -Manager $($user.Manager) `
      -MobilePhone $($user.MobilePhone)
    }  

    Parfois ma case MobilePhone est vide dans mon fichier csv et il ne gère pas la case vide du coup il me renvoi cette erreur là

    Set-ADUser : replace
    Au caractère C:\test.ps1:6 : 3
    +   Set-ADUser -surname $($user.surname) `
    +   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation : (CN=xxxxx,OU=mondomaine:ADUser) [Set-ADUser], ADInvalidOperationException
        + FullyQualifiedErrorId : replace,Microsoft.ActiveDirectory.Management.Commands.SetADUser

    Si je commente la ligne du mobilephone tout passe.

    Savez vous comment je peux lui faire gérer la case vide sans qu'il me retourne une erreur et qu'il continue à defiler les lignes de mon fichier csv

    D'avance merci


    • Modifié Rob.bou jeudi 6 juillet 2017 16:19
    jeudi 6 juillet 2017 14:26

Réponses

  • Bonjour,

    Je pense qu'il suffit d'intégrer une condition du style

    if ($user.mobilephone -eq $null) { $user.mobilephone=""}

    Ou alors remplacer

    -MobilePhone $($user.MobilePhone)

    par

    -MobilePhone $("$user.MobilePhone")


    Merci de marquer comme réponse les sujets qui vous ont permis d'avancer afin que cela puisse être bénéfique aux personnes qui rencontrent le même problème.


    • Modifié matteu31400 jeudi 6 juillet 2017 14:55
    • Marqué comme réponse Rob.bou jeudi 6 juillet 2017 16:19
    jeudi 6 juillet 2017 14:54
  • Merci pour ta réponse, voici la ligne que j'ai ajouté pour solutionner mon problème:

    -MobilePhone $(if ($user.MobilePhone -eq "") {$null} Else {$user.MobilePhone})

    • Marqué comme réponse Rob.bou jeudi 6 juillet 2017 16:19
    jeudi 6 juillet 2017 16:18

Toutes les réponses

  • Bonjour,

    Je pense qu'il suffit d'intégrer une condition du style

    if ($user.mobilephone -eq $null) { $user.mobilephone=""}

    Ou alors remplacer

    -MobilePhone $($user.MobilePhone)

    par

    -MobilePhone $("$user.MobilePhone")


    Merci de marquer comme réponse les sujets qui vous ont permis d'avancer afin que cela puisse être bénéfique aux personnes qui rencontrent le même problème.


    • Modifié matteu31400 jeudi 6 juillet 2017 14:55
    • Marqué comme réponse Rob.bou jeudi 6 juillet 2017 16:19
    jeudi 6 juillet 2017 14:54
  • Merci pour ta réponse, voici la ligne que j'ai ajouté pour solutionner mon problème:

    -MobilePhone $(if ($user.MobilePhone -eq "") {$null} Else {$user.MobilePhone})

    • Marqué comme réponse Rob.bou jeudi 6 juillet 2017 16:19
    jeudi 6 juillet 2017 16:18