none
Utilizando extensionAttributes em Hast Table para busca de contas e desativação RRS feed

  • Pergunta

  • Boa tarde.

    Estou com uma urgência. Tenho um script que deve receber um arquivo de CSV, dentro dele buscar um campo de extensionAttribute e por este campo desativar as contas pois no CSV os usuários não possuem a informação de login.

    o script é este

    Get-ADUser -Filter {enabled -eq "true"} -Properties * |Select distinguishedName, extensionAttribute10| Export-CSV "c:\ADUsers.csv"
    $TabUser.clear()
    $TabUser = @{}

    Import-Csv "c:\ADUsers.csv" | foreach-object {
                    $TabUser.Add( $_.extensionAttribute10, $_.distinguishedName)
    }


    Import-Csv C:\Users\glauber.castro\Documents\Modelo*.csv| foreach-object {
                    $SAMACCOUNTNAME = $TabUser[$_.extensionAttribute10]
                    Disable-ADAccount -Identity $SAMACCOUNTNAME
                    Move-ADObject -Identity $SAMACCOUNTNAME -TargetPath "OU=Disabled,DC=domain,DC=com"          
                    
    }

    O erro que recebo é este

    Poderia me ajudar por favor?

    obrigado

    terça-feira, 19 de agosto de 2014 17:32

Respostas

  • Bom dia Fábio,

    Por algum motivo este erro não foi relevante, fiz o script abaixo e funcionou para o que eu queria.

    Aparentemente este erro é devido a alguns valores estarem vazios quando ele popula a tabela de hash. Preciso exatamente destes campos que coloquei, porque eles são os chaves para a busca, o arquivo de CSV e o AD possuem algumas informações divergentes e por isso a busca por esse critério.

    Get-ADUser -Filter {enabled -eq "true"} -Properties * |Select distinguishedName, extensionAttribute10| Export-CSV "c:\ADUsers.csv"
    $TabUser.clear()
    $TabUser = @{}
    
    Import-Csv "c:\ADUsers.csv" | foreach-object {
                    $TabUser.Add( $_.extensionAttribute10, $_.distinguishedName)
    }
    
    
    Import-Csv C:\*.csv| foreach-object {
                    $SAMACCOUNTNAME = $TabUser[$_.extensionAttribute10]
                    Disable-ADAccount -Identity $SAMACCOUNTNAME
                    Move-ADObject -Identity $SAMACCOUNTNAME -TargetPath "OU=Disabled,DC=domain,DC=com"


    Obrigado pela ajuda.

    Abs 


    terça-feira, 26 de agosto de 2014 14:52

Todas as Respostas

  • Glauber,

    Você tem o atributo Nome Distinto dentro do CSV? 

    Seu código não poderia usar o nome distinto? (Não tenho como testar é apenas uma sugestão)


    Fábio de Paula Junior

    quinta-feira, 21 de agosto de 2014 20:51
    Moderador
  • Bom dia Fábio,

    Por algum motivo este erro não foi relevante, fiz o script abaixo e funcionou para o que eu queria.

    Aparentemente este erro é devido a alguns valores estarem vazios quando ele popula a tabela de hash. Preciso exatamente destes campos que coloquei, porque eles são os chaves para a busca, o arquivo de CSV e o AD possuem algumas informações divergentes e por isso a busca por esse critério.

    Get-ADUser -Filter {enabled -eq "true"} -Properties * |Select distinguishedName, extensionAttribute10| Export-CSV "c:\ADUsers.csv"
    $TabUser.clear()
    $TabUser = @{}
    
    Import-Csv "c:\ADUsers.csv" | foreach-object {
                    $TabUser.Add( $_.extensionAttribute10, $_.distinguishedName)
    }
    
    
    Import-Csv C:\*.csv| foreach-object {
                    $SAMACCOUNTNAME = $TabUser[$_.extensionAttribute10]
                    Disable-ADAccount -Identity $SAMACCOUNTNAME
                    Move-ADObject -Identity $SAMACCOUNTNAME -TargetPath "OU=Disabled,DC=domain,DC=com"


    Obrigado pela ajuda.

    Abs 


    terça-feira, 26 de agosto de 2014 14:52