none
Modificar atributo de usuário RRS feed

  • Pergunta

  • Olá,

    Recentemente precisei alterar o schema do AD para criar um novo atributo para inserir a data de nascimento do usuário. Funcionou perfeitamente. Entretanto, preciso criar o script para realizar a população dessa informação em todas as contas através de um .csv. Mas, até o momento não consegui. Alguém tem alguma idéia de como posso fazer essa alteração.

    Segue conteúdo do arquivo.csv

    UserName,dtnascimento
    usuarioa,dd/mm/aaaa

    Segue exemplo do script utilizado.

    Import-module ActiveDirectory  
    Import-CSV "C:\arquivo.csv" | % { 
    $User = $_.UserName 
    $dtnascimento = $_.dtnascimento
    Set-ADUser $User -dtnascimento $dtnascimento


    terça-feira, 23 de junho de 2015 22:22

Todas as Respostas

  • Easy!

    Import-Module ActiveDirectory
    $CSVUsers = Import-CSV C:\TEMP\CSVUsers.csv
    ForEach ($User in $CSVUsers){
    	Set-ADUser -Identity $User.UserName -DateOfBirth $User.DateOfBirth
    }

    PS: Mude o nome deste campo para DateOfBirth no Active Directory e teste o script em um ambiente de homologação com um número pequeno de usuários para validar o funcionamento. Somente após esta validação execute o mesmo para os usuários que precisam do novo atributo populado.


    terça-feira, 23 de junho de 2015 22:57
  • Segue o resultado. Conforme pode verificar o atributo existe, mas o não foi inserido o valor contigo no arquivo.csv

    Set-ADUser : A parameter cannot be found that matches parameter name 'DateOfBirth'.
    At C:\Untitled4.ps1:4 char:38
    +     Set-ADUser -Identity $User.UserName -DateOfBirth $User.DateOfBirth
    +                                         ~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Set-ADUser], ParameterBindingException
        + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.SetADUse

    

    quarta-feira, 24 de junho de 2015 03:09
  • Tente...

    Set-ADUser -Identity $User.UserName -Replace @{dateOfBirth=$User.DateOfBirth}

    quarta-feira, 24 de junho de 2015 03:31
  • Infelizmente, sem sucesso.

    Set-ADUser : Cannot validate argument on parameter 'Identity'. The argument is null. Provide a valid value for the argument, and 
    then try running the command again.
    At C:\Untitled4.ps1:6 char:23
    +     Set-ADUser -Identity $User.UserName -Replace @{dateOfBirth=$User.DateOfBirth}
    +                          ~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidData: (:) [Set-ADUser], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADUser

    O problema pode acontecer, devido a ser um atributo customizado?

    quarta-feira, 24 de junho de 2015 17:09
  • Pela mensagem de erro você simplesmente tentou executar o comando sem ter populado a variável $CSVUSers com os valores do CSV, pois a mensagem de erro é clara: Cannot validate argument on parameter 'Identity'. The argument is null.

    Import-Module ActiveDirectory
    $CSVUsers = Import-CSV C:\TEMP\CSVUsers.csv
    ForEach ($User in $CSVUsers){
    	Set-ADUser -Identity $User.UserName -Replace @{dataOfBirth=$User.DateOfBirth}
    }


    • Sugerido como Resposta 4HorsemenOfDaIT quinta-feira, 26 de novembro de 2015 01:42
    quarta-feira, 24 de junho de 2015 19:52