PowerShell e Active Directory

2,923 views
2,733 views

Published on

Manipulando o Active Directory com PowerShell

Published in: Education
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
2,923
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
53
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

PowerShell e Active Directory

  1. 1. Sistemas Operacionais PowerShell Parte 2 User Management
  2. 2. User Management• Podemos gerenciar objetos do Active Directory com scripts PowerShell;
  3. 3. Connecting to a Domain• Seu primeiro objetivo é conectar (somente se uma máquina está em um domínio).
  4. 4. Logar
  5. 5. Container• Domínios têm uma estrutura hierárquica como a estrutura de diretórios do sistema de arquivos.• Recipientes dentro do domínio são diretórios ou unidades organizacionais. Se você quiser acesso a um recipiente, especifique o caminho LDAP para o recipiente.
  6. 6. Acesso a Container
  7. 7. Acesso a Container
  8. 8. Acesso a Container
  9. 9. Listando Users
  10. 10. Listando Users
  11. 11. Buscando um Usuário
  12. 12. Procurando Elementos$UserName = "*mini*"$searcher = New-ObjectDirectoryServices.DirectorySearcher([ADSI]"")$searcher.filter ="(&(objectClass=user)(sAMAccountName= $UserName))"$searcher.findall()
  13. 13. Se não estiver logado• Se não estiver logado, antes do script anterior deve adicionar o comando:$domain = New-Object DirectoryServices.DirectoryEntry("L DAP://192.168.1.1","domainuser", "secret")
  14. 14. Usando a Função
  15. 15. Listando Propriedades
  16. 16. Alterando uma Propriedade
  17. 17. Lendo uma PropriedadePodemos ler propriedades de objetos.$useraccount.Description$useraccount.Get("Description")$useraccount.psbase.InvokeGet("Description")
  18. 18. Modificando Propriedades$searchuser = Get-LDAPUser Guest$useraccount = $searchuser.GetDirectoryEntry()# Method 1:$useraccount.Description = "A new description"$useraccount.SetInfo()# Method 2:$useraccount.Put("Description", "Another new description")$useraccount.SetInfo()# Method 3:$useraccount.PSBase.InvokeSet("Description", "A third description")$useraccount.SetInfo()
  19. 19. Modificando Propriedades$ldap = "CN=Users"$domain = [ADSI]""$dn = $domain.distinguishedName$users = [ADSI]"LDAP://$ldap,$dn"$users.PSBase.Children | Where-Object { $_.sAMAccountType -eq 805306368 } | Where-Object { $_.Description.toString() -eq "" } | ForEach-Object { $_.Description = "Standard description"; `$_.SetInfo(); $_.sAMAccountName + " was changed." }
  20. 20. Deletando uma Propriedade• O método PutEx() pode excluir propriedades, requer três parâmetros: – Indica o que o método deve fazer; – Propriedade que será afetada; – Valor que será utilizado pelo mecanismo.
  21. 21. Deletando uma Propriedade
  22. 22. Deletando uma Propriedade$useraccount.PutEx(1, "Description", 0)$useraccount.SetInfo()
  23. 23. Alterando um Valor por Completo$useraccount.PutEx(2, "otherHomePhone",@("123", "456", "789"))$useraccount.SetInfo()
  24. 24. Adicionando Informações a Propriedade$useraccount.PutEx(3, "otherHomePhone",@("555"))$useraccount.SetInfo()
  25. 25. Excluindo Parte da Propriedade$useraccount.PutEx(4, "otherHomePhone",@("456", "789"))$useraccount.SetInfo()
  26. 26. Invocando Métodos$guest | Get-Member -memberType *Method$useraccount.SetPassword("New password")$useraccount.ChangePassword("Old password", "Newpassword")
  27. 27. Criando uma Unidade Organizacional$company = $domain.Create("organizationalUnit", "OU=Idera")$company.SetInfo()$sales = $company.Create("organizationalUnit", "OU=Sales")$sales.SetInfo()$marketing = $company.Create("organizationalUnit","OU=Marketing")$marketing.SetInfo()$service = $company.Create("organizationalUnit", "OU=Service")$service.SetInfo()
  28. 28. Tipos de Grupos
  29. 29. Criando Grupos$group_marketing = $marketing.Create("group","CN=Marketinglights")$group_marketing.psbase.InvokeSet("groupType",-2147483648 + 2)$group_marketing.SetInfo()$group_newsletter = $company.Create("group","CN=Newsletter")$group_newsletter.psbase.InvokeSet("groupType", 2)$group_newsletter.SetInfo()
  30. 30. Criando Usuários$user = $sales.Create("User", "CN=MyNewUser")$user.SetInfo()$user.Description = "My New User"$user.SetPassword("TopSecret99")$user.psbase.InvokeSet(AccountDisabled, $false)$user.SetInfo()
  31. 31. Referência• WELTNER, Tobias. Windows PowerShell MVP. Bbs Technologies, 2009.

×