Visitantes

Mostrando postagens com marcador Active Directory. Mostrar todas as postagens
Mostrando postagens com marcador Active Directory. Mostrar todas as postagens

Script para listar usuarios dos grupos do AD






Fala pessoal, segue abaixo um script bem util que lista os usuarios de cada grupo do AD e cria um arquivo CSV com o resultado.

#------------------------------------------------
# Script para Obter os usuarios dos grupos do AD
#------------------------------------------------
# Atualize o filtro baseado nos codigos abaixo
# -----------------------------------------------
# 2 Global distribution group
# 4 Domain local distribution group
# 8 Universal distribution group
# -2147483646 Global security group
# -2147483644 Domain local security group
# -2147483640 Universal security group
# http://portal.sivarajan.com/2010/08/list-group-members-in-active.html
#-------------------------------------------------

if(@(get-module | where-object {$_.Name -eq "ActiveDirectory"} ).count -eq 0) {import-module ActiveDirectory}

$OutPutFile = New-Item -type file -force "C:\GroupDetails.csv"

$ObjFilter = "(&(objectCategory=Group)(|(groupType=2)(groupType=4)(groupType=8)))"
$objSearch = New-Object System.DirectoryServices.DirectorySearcher
$objSearch.SearchRoot = "LDAP://dc=dominioad,DC=com" #Substitua pela raiz do dominio.
$objSearch.PageSize  = 10000
$objSearch.Filter = $ObjFilter

$Results = $objSearch.FindAll()

foreach ($Result in $Results){
      $Item = $Result.Properties
      Write-host $Item.cn
      $Item.cn | Out-File $OutPutFile -encoding ASCII -append

foreach ($Member in $Item.member){
        Write-host "$Member"
        $Member | Out-File $OutPutFile -encoding ASCII -append
}

  }

Script para atualização de campos do Active Directory utilizando arquivo CSV







Pessoal disponibilizo hoje um Script simples em Powershell que servirá para atualizar alguns campos de usuários no Active Directory utilizando um arquivo CSV. 

No exemplo, foi exportada uma lista do ERP da empresa que possui alguns dados que na correria da criação acabam não sendo inseridos nas propriedades dos usuários ou que são alterados ao longo do tempo e não são replicados no Active Directory como por exemplo: mudança de Cargo, alteração de Ramal ou telefone, alteração de localização do usuário, etc,etc... Então vamos por a mão na massa.

Pré-requisitos:
Necessário ter instalado os CMDLETS de administração do Active Directory da Quest

http://www.quest.com/powershell/activeroles-server.aspx

Depois do CMDLET instalado, crie um arquivo CSV com os dados que você precisa importar, na primeira linha será necessário colocar o nome dos campos. No exemplo para facilitar usei os mesmos nomes dos campos do ActiveDirectory como cabeçalho.



No site http://www.selfadsi.org/user-attributes.htm  você pode consultar o nome dos campos no Active Directory e ajustar o seu Script para atualizar outros campos alem desses que utilizei.

Tendo o arquivo CSV em mãos é só executar o Script Abaixo.

Atenção!!! Se você exportar uma planilha Excel para um arquivo CSV verifique se ela delimitou os campos com “;” ou invés de “,” , para que o Script funcione corretamente  o arquivo precisa necessariamente utilizar a virgula para delimitar os campos.


'################## INICIO SCRIPT #########################
'Nome do Script: Update_users.ps1
'Script para atualizacao do ActiveDirectory a partir da Planilha gerada do ERP
'Data: Jun/2014 - Versão 1.0
'Scripter: Marcos valente (www.marcosvalente.com.br)
'
' Os nome dos campos devem ser inseridos na primeira linha do CSV, como no Ex abaixo;
'samaccountname,City,StateorProvince,PostalCode,Title,company,department,
'physicalDeliveryOfficeName,telephoneNumber
'
'Utilização: update_users.ps1 <caminho + nome do Arquivo CSV>
'EX: Update_users 'c:\usuarios.csv'
'
' Atenção os campos devem estar separados por "," e não ";".
'#########################################################

Function Update_users([string]$Path)
{

Import-Module ActiveDirectory
Add-PSSnapin quest*

$users=Import-Csv $path

$USERS|Foreach{
Set-QADUSer -Identity $_.samaccountname -city $_.City -StateorProvince $_.stateorProvince 
-PostalCode $_.Postalcode -Title $_.Title -company $_.company -department $_.department 
-physicalDeliveryOfficeName $_.physicalDeliveryOfficeName -telephoneNumber $_.telephoneNumber}

}

'################## FIM SCRIPT ####################

Bom é isso ai pessoal, script simples e eficiente qualquer duvida ou sugestão me contatem.


Um abraço e até a próxima.