Usuário com melhor resposta
Script para listar usuário inativo e, quais grupos eles pertecem

Pergunta
-
Bom dia,
Preciso usar um script que busque:
- nome usuario
- account
- Inativo/Ativo
- Membro de qual Grupo
Ou seja, em um único script, gostaria de filtrar nome do usuário, nome do id, se ele esta ativo ou inativo e, quais grupos ele pertence. Encontrei muitos scripts, mas apenas faz o usuário inativo, ou mostra os grupos, queria unificar em um unico script.
Fiz desta maneira, mas buscou apenas o usuário ativo/inativo.
dsquery user OU=TI,DC=dominio,DC=LOCAL |dsget user -samid -disabled
Douglas Urbano
Respostas
-
Douglas,
Veja este script em PowerShell
Import-Module activedirectory $usuarios = get-adUser -filter * -SearchBase "DC=lab,dc=com,dc=br" -Properties * foreach($u in $usuarios){ "===============================================================" "Nome : "+ $u.DisplayName "Login : "+ $u.SamAccountName "Habilitado: "+ $u.Enabled "Grupos :" foreach ($g in $u.memberof){ #Aqui coloquei duas opcoes de nome de grupo #Basta voce apagar a linha que vc nao quer "`t"+$g #Aqui mostra o nome distinto "`t"+(Get-ADGroup $g).name #Aqui mostra o nome do grupo } }
Fábio de Paula Junior
- Marcado como Resposta Douglas Urbano segunda-feira, 1 de julho de 2013 21:34
- Editado Fábio JrModerator quarta-feira, 10 de julho de 2013 13:22 correcao
-
Douglas,
Basta vc colocar ">> nome do arquivo.txt" na frente de tudo que vc quer que saia no arquivo de saída, assim:
Import-Module activedirectory $usuarios = get-adUser -filter * -SearchBase "DC=lab,dc=com,dc=br" -Properties * foreach($u in $usuarios){ "===============================================================" "Nome : "+ $u.DisplayName >> c:\temp.txt "Login : "+ $u.SamAccountName >> c:\temp.txt "Habilitado: "+ $u.Enabled >> c:\temp.txt "Grupos :" >> c:\temp.txt foreach ($g in $u.memberof){ #Aqui coloquei duas opcoes de nome de grupo #Basta voce apagar a linha que vc nao quer "`RH"+$g #Aqui mostra o nome distinto "`RH"+(Get-ADGroup $g).name >> c:\temp.txt } }
Fábio de Paula Junior
- Marcado como Resposta Douglas Urbano quarta-feira, 10 de julho de 2013 13:16
- Editado Fábio JrModerator quarta-feira, 10 de julho de 2013 13:21 correção
-
Douglas,
Só complementando...
Uma outra opção é ao invés de colocar os ">>" dentro do script, você pode utilizar fora do script.
1. Não altere o script (deixe como na primeira versão que passei, que imprime na tela)
2. Na hora de chamar o script pelo prompt faça assim.
PS C:\Users\fabiojr> .\seuscript.ps1 > c:\teste.txt
Assim eu acho melhor porque você tem o script para duas utilizações: Imprimir na tela e no arquivo.
Fábio de Paula Junior
- Marcado como Resposta Douglas Urbano quarta-feira, 10 de julho de 2013 17:32
Todas as Respostas
-
Douglas,
Veja este script em PowerShell
Import-Module activedirectory $usuarios = get-adUser -filter * -SearchBase "DC=lab,dc=com,dc=br" -Properties * foreach($u in $usuarios){ "===============================================================" "Nome : "+ $u.DisplayName "Login : "+ $u.SamAccountName "Habilitado: "+ $u.Enabled "Grupos :" foreach ($g in $u.memberof){ #Aqui coloquei duas opcoes de nome de grupo #Basta voce apagar a linha que vc nao quer "`t"+$g #Aqui mostra o nome distinto "`t"+(Get-ADGroup $g).name #Aqui mostra o nome do grupo } }
Fábio de Paula Junior
- Marcado como Resposta Douglas Urbano segunda-feira, 1 de julho de 2013 21:34
- Editado Fábio JrModerator quarta-feira, 10 de julho de 2013 13:22 correcao
-
-
-
-
Bom dia, Fabio!
Na verdade, eu estou usando o script que você me postou que funciona perfeitamente.
Import-Module activedirectory $usuarios = get-adUser -filter * -SearchBase "DC=lab,dc=com,dc=br" -Properties * foreach($u in $usuarios){ "===============================================================" "Nome : "+ $u.DisplayName "Login : "+ $u.SamAccountName "Habilitado: "+ $u.Enabled "Grupos :" foreach ($g in $u.memberof){ #Aqui coloquei duas opcoes de nome de grupo #Basta voce apagar a linha que vc nao quer "`RH"+$g #Aqui mostra o nome distinto "`RH"+(Get-ADGroup $g).name #Aqui mostra o nome do grupo } }
Mas, gostaria que todos os resultados deste grupo, eu pudesse exportar para o C: da máquina, por exemplo, c:\temp.txt
Gostaria de Filtrar assim:
Nome: Douglas Urbano
Login: dsurbano
Habilitado: Sim
Grupo: Administrator, RH_All
Isso te ajuda?
Caso tenha algum script em .vbs ou mesmo dsquery que consiga todas estas informações, pode ser também.
Obrigado,
Douglas Urbano
- Editado Fábio JrModerator quarta-feira, 10 de julho de 2013 13:21 correcao
-
Douglas,
Basta vc colocar ">> nome do arquivo.txt" na frente de tudo que vc quer que saia no arquivo de saída, assim:
Import-Module activedirectory $usuarios = get-adUser -filter * -SearchBase "DC=lab,dc=com,dc=br" -Properties * foreach($u in $usuarios){ "===============================================================" "Nome : "+ $u.DisplayName >> c:\temp.txt "Login : "+ $u.SamAccountName >> c:\temp.txt "Habilitado: "+ $u.Enabled >> c:\temp.txt "Grupos :" >> c:\temp.txt foreach ($g in $u.memberof){ #Aqui coloquei duas opcoes de nome de grupo #Basta voce apagar a linha que vc nao quer "`RH"+$g #Aqui mostra o nome distinto "`RH"+(Get-ADGroup $g).name >> c:\temp.txt } }
Fábio de Paula Junior
- Marcado como Resposta Douglas Urbano quarta-feira, 10 de julho de 2013 13:16
- Editado Fábio JrModerator quarta-feira, 10 de julho de 2013 13:21 correção
-
-
Douglas,
Só complementando...
Uma outra opção é ao invés de colocar os ">>" dentro do script, você pode utilizar fora do script.
1. Não altere o script (deixe como na primeira versão que passei, que imprime na tela)
2. Na hora de chamar o script pelo prompt faça assim.
PS C:\Users\fabiojr> .\seuscript.ps1 > c:\teste.txt
Assim eu acho melhor porque você tem o script para duas utilizações: Imprimir na tela e no arquivo.
Fábio de Paula Junior
- Marcado como Resposta Douglas Urbano quarta-feira, 10 de julho de 2013 17:32
-