none
Como desabilitar bloco de usuários e mover para OU - Powershell RRS feed

  • Pergunta

  • Bom dia,

    Fiz um script com a ideia de desabilitar usuário e mover para uma OU de desabilitados. Porém acredito que estou "batendo cabeça" na sintaxe por ser novo em Powershell.

    $DisableAccounts = Import-Csv .\testeusersAD_6.csv 
    $AdminCredentials = Get-Credential "domain\glauber.castro"
    Move-ADObject "CN=$_.SamAccountName,OU=Teste,DC=domain,DC=domain" -TargetPath "OU=Disabled,DC=domain,DC=gdomain" | foreach-object { 

    Disable-ADAccount -Identity $_.SamAccountName

    }

    A ideia deste script é pegar os usuários do CSV e jogar na OU, porém não consigo com este código. Só a parte de desabilitar funciona.

    Gostaria também de encaixar um IF para ele fazer uma varredura em todas as OUs e verificar quais contas estão com status Disabled e mover também mas não sei a sintaxe. Mesmo procurando não conseguir achar nada que funcionasse.

    Abraços

    segunda-feira, 30 de junho de 2014 14:03

Respostas

  • Glauber,

    Para mover todas as contas desabilitadas para uma OU:

    Get-ADUser -Filter {enabled -eq "false"} | % {
    
        Move-ADObject $_ -TargetPath "OU=Disabled,DC=domain,DC=gdomain" 
    
    }

    Primeiro eu pego todas as contas desabilitadas com o comando Get-AdUser, em seguida em jogo o resultado via pipe para um foreach(%) que move uma a uma as contas.

    Para desabilitar as contas seria um bem semelhante, vc só vai trocar o Get-ADUser pelo Import-CSV e trocar o Move-ADObject pelo comando de desabilitar.

    Talvez isto funcione:

    Import-Csv .\testeusersAD_6.csv  | % {
    
        Disable-ADAccount -Identity $_.SamAccountName
    
        Move-ADObject $_.SamAccountName -TargetPath "OU=Disabled,DC=domain,DC=gdomain" 
    
    }

    Não testei nenhum dos dois.


    Fábio de Paula Junior


    segunda-feira, 30 de junho de 2014 14:27
    Moderador

Todas as Respostas

  • Glauber,

    Para mover todas as contas desabilitadas para uma OU:

    Get-ADUser -Filter {enabled -eq "false"} | % {
    
        Move-ADObject $_ -TargetPath "OU=Disabled,DC=domain,DC=gdomain" 
    
    }

    Primeiro eu pego todas as contas desabilitadas com o comando Get-AdUser, em seguida em jogo o resultado via pipe para um foreach(%) que move uma a uma as contas.

    Para desabilitar as contas seria um bem semelhante, vc só vai trocar o Get-ADUser pelo Import-CSV e trocar o Move-ADObject pelo comando de desabilitar.

    Talvez isto funcione:

    Import-Csv .\testeusersAD_6.csv  | % {
    
        Disable-ADAccount -Identity $_.SamAccountName
    
        Move-ADObject $_.SamAccountName -TargetPath "OU=Disabled,DC=domain,DC=gdomain" 
    
    }

    Não testei nenhum dos dois.


    Fábio de Paula Junior


    segunda-feira, 30 de junho de 2014 14:27
    Moderador
  • Boa tarde Fábio.

    Fiz alguns testes com o seu primeiro script e funcionou. O segundo não deu certo mesmo. Ele disse que não encontra o objeto pelo SamAccountName, o que acho estranho pois existe.

    Com o seu primeiro eu fiz o seguinte, ele vai pegar os usuários da lista de CSV e desabilitar, independente de onde estiver, logo após isso ele vai fazer uma varredura em todo o AD e vai mover todos os usuários desabilitados, independente de onde estiver e do tempo que foi desabilitado para a OU de Disabled.

    O script ficou assim:

    $DisableAccounts = Import-Csv .testeusersAD_6.csv | foreach-object { 

    Disable-ADAccount -Identity $_.SamAccountName

    Get-ADUser -Filter {enabled -eq "false"} | % {

        Move-ADObject $_ -TargetPath "OU=Disabled,DC=domain,DC=gdomain" 

    }}

    Obrigado pela ajuda!

    abraços

    segunda-feira, 30 de junho de 2014 19:13