none
Alteração de Senha RRS feed

  • Pergunta

  •  Pessoal, boa noite!

     Alguém conhece um script para alterar a senha de vários usuários de uma vez no AD dentro de uma OU. E também se possível definir log on to com uma conta de computador única para todos esses usuários dentro dessa OU.

     Abraço a todos.

    terça-feira, 18 de junho de 2013 00:08

Respostas

  • Fábio, pesquisando ontem cheguei a essa solução que você propôs.

    O intuito é segurança mesmo, trabalho em uma universidade e a estrutura de Ad e muito grande e entra e saí gente toda hora.

    Eu tenho uma OU demitidos no qual os usuários por sua maioria são professores que podem retornar a universidade para lecionar. 

    O que eu quero fazer dentro dessa ou=demitidos é o seguinte.

    1. Alterar a senha para uma padrão.

    dsquery user -startnode "OU=Logon Proibido,dc=lab,dc=seu,dc=dominio" | dsmod user -pwd "Tr0c@senha"

     

    2. Adicionar os usuários dessa OU ao grupo Negar log on local.

    dsquery user -startnode "OU=Logon Proibido,dc=lab,dc=seu,dc=dominio" | dsmodgroup "CN=GR_Logon_Proibido,OU=teste,DC=lab,DC=seu,DC=dominio" –addmbr

    Agora, se essa rotina acima, de adicionar os usuários ao grupo, rodar todo dia de 10 em 10 minutos, tem como acrescentar no comando, uma linha para checar se o usuário já está no grupo? e se estiver não fazer nada, e se não estiver inclui-lo?

    3. Remover todos os grupos dos usuários se só deixar o Negar log on local

         

    ????????  Será que tem como?

    Tem que montar uma bat ou um vbs?

    quarta-feira, 19 de junho de 2013 11:54

Todas as Respostas

  • lalves, se for utilizar uma mesma estação para esses usuários você utilizará uma conta única de computador. Caso não seja essa sua dúvida, não ficou muito claro para mim.

    Para a alteração da senha de usuários do AD, você pode fazer um script bat utilizando dsmod ou script Powershell.


    Att, Nino - Engº. de Projetos - http://www.TInoBar.com.br

    terça-feira, 18 de junho de 2013 00:53
  •  Nino, a situação é a seguinte.

     Tenho dentro de uma OU usuários que não podem ser desativados e nem deletados e por medida de segurança quero alterar a senha de todos que entram nessa  OU e colocar para eles logarem somente em um micro fictício, que não existe.

    terça-feira, 18 de junho de 2013 11:33
  • lalves, confesso que não vi tal situação e não tenho certeza que seja possível. O que você quer não seria uma única conta de usuário ao invés de uma conta de computador fictícia? Talvez algum de nossos colegas de fórum possa compartilhar alguma experiência nesse sentido.

    Você pensou na possibilidade de fazer essa verificação via script de logon?

    Qual o seu objetivo final nesse tópico, somente evitar que contas sejam removidas/desativadas?

    Favor verificar os links abaixo, talvez o auxiliem nessa sua demanda:


    Att, Nino - Engº. de Projetos - http://www.TInoBar.com.br

    terça-feira, 18 de junho de 2013 13:19
  • Proponho o seguinte:

    1. Crie um Grupo, exemplo: GR_Logon_Proibido
    2. Na Default Domain Policy, altere a diretiva "Deny Log on Locally", adicione um Grupo GR_Logon_Proibido (Com isso todo usuário que estiver dentro deste grupo não conseguirá fazer log on em qualquer máquina do dominio)
    3. Agora popular o grupo com todos os usuários da sua OU. Execute o comando abaixo (acerte os caminho do seu dominio).

    C:\Users\Administrator> dsquery user -startnode "OU=Logon Proibido,dc=lab,dc=seu,dc=dominio" | dsmod group "CN=GR_Logon_Proibido,OU=teste
    ,DC=lab,DC=seu,DC=dominio" -addmbr

    4. Alterar a senha

    dsquery user -startnode "OU=Logon Proibido,dc=lab,dc=seu,dc=dominio" | dsmod user -pwd "Tr0c@senha"

    Não ficou claro aonde você quer chegar, mudar senha, não permitir logon...

    Ref.:

    Dsmod group

    http://technet.microsoft.com/en-us/library/cc732423(v=ws.10).aspx


    Fábio de Paula Junior



    quarta-feira, 19 de junho de 2013 00:02
    Moderador
  • Fábio, pesquisando ontem cheguei a essa solução que você propôs.

    O intuito é segurança mesmo, trabalho em uma universidade e a estrutura de Ad e muito grande e entra e saí gente toda hora.

    Eu tenho uma OU demitidos no qual os usuários por sua maioria são professores que podem retornar a universidade para lecionar. 

    O que eu quero fazer dentro dessa ou=demitidos é o seguinte.

    1. Alterar a senha para uma padrão.

    dsquery user -startnode "OU=Logon Proibido,dc=lab,dc=seu,dc=dominio" | dsmod user -pwd "Tr0c@senha"

     

    2. Adicionar os usuários dessa OU ao grupo Negar log on local.

    dsquery user -startnode "OU=Logon Proibido,dc=lab,dc=seu,dc=dominio" | dsmodgroup "CN=GR_Logon_Proibido,OU=teste,DC=lab,DC=seu,DC=dominio" –addmbr

    Agora, se essa rotina acima, de adicionar os usuários ao grupo, rodar todo dia de 10 em 10 minutos, tem como acrescentar no comando, uma linha para checar se o usuário já está no grupo? e se estiver não fazer nada, e se não estiver inclui-lo?

    3. Remover todos os grupos dos usuários se só deixar o Negar log on local

         

    ????????  Será que tem como?

    Tem que montar uma bat ou um vbs?

    quarta-feira, 19 de junho de 2013 11:54
  • Bom dia,

    Cara é muita coisa que vc tá precisando, não tenho tudo pronto mas vou te passar o "caminho das pedras" para tentar resolver  isto. Vamos lá.

    O passo 1 vc já tem tem no powershell.
    Para usar em vbs crie um script powershell tipo "troca_senha.ps1"
    Depois chame este script pelo vbs com:

    Set objShell = CreateObject("Wscript.shell")
    objShell.run("powershell -noexit -file c:\fso\troca_senha.ps1")


    O passo 2 acredito que só pelo jeito do script ele vai copiar tudo se estiver vai continuar e se não vai incluí-lo. Para Rodar o dia todo de  10 em 10 min vc vai ter que  criar um schedule-task.

    Criar uma tarefa

    Mas antes como mostrei no item anterior, neste passo agora crie um ps1 tipo "adiciona.ps1" coloque no vbs, e chame o script no schedule task.

    O passo 3 mesma coisa use este script powershell (que vc pode chamá-lo pelo vbs como expliquei acima).

    $users= get-aduser -Filter * -SearchBase "ou=ExEmployees,dc=contoso,dc=com"
    
    Function RemoveMemberships
    
     {
    
     param([string]$SAMAccountName) 
     
     $user = Get-ADUser $SAMAccountName -properties memberof
     
     $userGroups = $user.memberof
    
     $userGroups | %{get-adgroup $_ | Remove-ADGroupMember -confirm:$false 
    -member $SAMAccountName} $userGroups = $null } $users | %{RemoveMemberships $_.SAMAccountName}


    Esta primeira parte vai remover tudo os grupos na segunda parte coloque só o grupo que vc quer :

    Get-ADGroup -Server server -SearchBase "OU=AccountOU,DC=empresa" 
    -filter { name -like "o_que_vc_qer_filtrar" } | Add-ADGroupMember -Members
    "CN=Negar_log_on_local,OU=AccountOU,DC=empresa"

    Nota: não testei tudo, mas da forma que estou colocando fica fácil agora adaptar para o que vc quer.

    Favor marcar se útil.

    Até...


    Warley


    • Editado Warley Eric quarta-feira, 19 de junho de 2013 14:35 erro escrita
    quarta-feira, 19 de junho de 2013 12:39
  • Em .bat

    SET OU="OU=teste,DC=lab,DC=seu,DC=dominio"
    SET GR_DENY="CN=GR_Logon_Proibido,OU=teste,DC=lab,DC=seu,DC=dominio"
    
    ::0. Retirar usuário de todos os grupos
    
    for /f "Tokens=*" %%u in ('dsquery user -startnode %OU%') do (
    	echo Verificando %%u
    	
    	for /f "Tokens=*" %%g in ('dsget user %%u -memberof') do dsmod group %%g -rmmbr %%u
    
    )
    
    
    ::1. Alterar a senha para uma padrão.
    
    dsquery user -startnode %OU% | dsmod user -pwd "Tr0c@senha"
    
    ::2. Adicionar os usuários dessa OU ao grupo Negar log on local.
    
    dsquery user -startnode %OU% | dsmod group %GR_DENY% -addmbr

    Observações:

    1. Não testei

    2. Coloque o nome correto da sua OU (coloquei com nome ficticio: OU=Logon Proibido...), mexa apenas nas duas linhas que iniciam com SET

    3. Se não funcionar mande um print com os erro, apenas dizer que não funcionou não te ajuda.

    Em todos esses anos trabalhando nesta industria vital eu nunca tinha visto uma demanda dessas, em todos os lugares que vi apenas era desabilitada a conta.


    Fábio de Paula Junior

    quarta-feira, 19 de junho de 2013 13:15
    Moderador
  • Pessoal,

    Pelo que andei testando aqui, esses dois comandos abaixo me "atende".

    dsquery user "ou=excluidos,dc=teste,dc=teste" | dsmod user -pwd Troc@Senh@!

    dsquery user "ou=excluidos,dc=teste,dc=teste" | dsmod group "cn=negar log on local,ou=excluidos,dc=teste,dc=teste" –addmbr

    Só que, testando aqui, o comando de adicionar usuários ao grupo negar log on local ao rodar novamente, depois de rodado da primeira vez, da o erro abaixo, e não insere ao grupo nos novos usuários que foram inseridos na OU e ainda não estão no grupo, o comando está identificado que alguns ou algum usuários já estão no grupo e não roda. Tem como tratar isso?

    1 - Rodei o comando. Inseriu os usuários da OU no grupo.

    2 - Inseri na ou novos usuários. Rodei o comando novamente. Erro. E não inseriu os novos usuários da OU no grupo.

    dsmod failed:cn=negar log on local,ou=excluidos,dc=teste,dc=teste:The specified acc ount name is already a member of the local group.

    Meu AD é 2003 standart

    quarta-feira, 19 de junho de 2013 14:17
  • use assim então:

    for /f "delims=" %a in 
    ('dsquery group -name "ou=excluidos..." ^| dsget group -members') 
    do 
    dsmod group "ou=excluidos..." –addmbr %a

    Até...

    Favor marcar se util.


    Warley


    • Editado Warley Eric quarta-feira, 19 de junho de 2013 14:32 erro de escrita
    quarta-feira, 19 de junho de 2013 14:29
  • Fiz exatamente este teste e funcionou. Mas talvez a massa de usuários que você tenha pode gerar um erro que não apareça pra mim.

    O erro The specified acc ount name is already a member of the local group., é normal pois ele está tentando adicionar usuários que já estão no grupo, além dos novos, mas não era para parar de executar.

    Dá um Refresh no dsa.msc e confira se realmente os novos usuários da OU não estão no grupo.


    Fábio de Paula Junior

    quarta-feira, 19 de junho de 2013 14:33
    Moderador
  •  Segue como montei o script bat, a parte de "Retirar usuário de todos os grupos" não funcionou, por isso não coloquei.

    SET OU="OU=excluidos,DC=teste,DC=teste"

    SET GR_DENY="CN=negar log on local,OU=excluidos,DC=teste,DC=teste"

     

    ::1. Alterar a senha para uma padrão.

    dsquery user %OU% | dsmod user -pwd  Troc@Senh@!

    Aqui tá ok

    ::2. Adicionar os usuários dessa OU ao grupo Negar log on local.

    dsquery user %OU% | dsmod group %GR_DENY% -addmbr

    Aqui da o erro, e não insere os novos usuários. Já fiz o refresh e nada.

    Aonde devo inserir as linhas abaixo?

    for /f "delims=" %a in 
    ('dsquery group -name "ou=excluidos..." ^| dsget group -members') 
    do 
    dsmod group "ou=excluidos..." addmbr %a

    Pessoal, não entendo muito de programação.

    quarta-feira, 19 de junho de 2013 14:51
  •  Uma luz pessoal,

     Resetar senha dos usuários, adiciona los a um determinado grupo.

     Vbs ou Bat.

     Há tem como deletar usuários de uma ou com mais de 30 dias sem logar?

    quinta-feira, 20 de junho de 2013 16:56
  • LAlves,

    Já tá parecendo manifestação na Paulista, começou por 0,20 centavos e agora cada um quer uma coisa.

    Agora já tem que deletar usuários com mais de 30 dias sem logar?

    Alguém conhece um script para alterar a senha de vários usuários de uma vez no AD dentro de uma OU. E também se possível definir log on to com uma conta de computador única para todos esses usuários dentro dessa OU.

    Da pergunta inicial as duas atividades já foram respondidas, depois surgiu limpar grupos dos usuários e mais essa agora.

    LEIA ANTES DE PERGUNTAR: Como utilizar este fórum

    http://social.technet.microsoft.com/Forums/pt-BR/26727dcf-6fcd-4f6a-965c-b3952eb35365/leia-antes-de-perguntar-como-utilizar-este-frum


    Fábio de Paula Junior


    quinta-feira, 20 de junho de 2013 17:11
    Moderador
  •  Obrigado a todos.

     

    sexta-feira, 21 de junho de 2013 14:06