Come ottenere rapidamente con Powershell la lista degli utenti di un dominio ed i relativi indirizzi e-mail di Exchange

Active-Directory-Logo Avete bisogno di una lista di utenti e dei relativi indirizzi e-mail presenti in Exchange? Usate Powershell sul domain controller!

In Active Directory vengono registrati tutti i dati degli utenti compresi gli indirizzi e-mail.

Quindi in un domain controller possiamo recuperare sia i nomi degli utenti, l’account ed anche l’indirizzo e-mail.

Get-ADUser -Filter * -Properties DisplayName, EmailAddress, Title | Select-Object -Property @{Name="Nome"; Expression = {$_.displayname}},@{Name="Indirizzo e-mail"; Expression = {$_.emailaddress}},@{Name="Account"; Expression ={$_.samaccountname}},@{Name="Stato"; Expression = {$_.enabled}}| where {($_."Indirizzo e-mail") -and ($_."Nome")}|Sort-Object Nome

Il risultato che otterremo è questo:

Nome                   Indirizzo e-mail                                  Account              Stato
----                   ----------------                                  -------              -----
Administrator          administrator@acmespa.it                          Administrator         True
Alessandro Rossi       Alessandro.Rossi@acmespa.it                       arossi               False
Antonella Bianchi      acquisti@acmespa.it                               abianchi              True
Antonio Neri           magazzino@acmespa.it                              aneri                 True
Emilio Di Maio         Emilio.DiMaio@acmespa.it                          edimaio               True
IT MAN                 itman@acmespa.it                                  itman                 True
Laboratorio            laboratorio@acmespa.it                            laboratorio           True
Annunci

Script per aggiungere automaticamente una firma ad Outlook su Exchange 2010/2013

Find username

Vorreste creare una firma in Outlook automaticamente acquisendo le informazioni da Active directory?

Si può fare!


Normalmente in Active directory vengono salvate poche informazioni come nome e cognome, ma è possibile salvare molte più informazioni che possono essere utilizzate per creare automaticamente una firma completa senza che l’utente debba inserire alcuna informazione.
Grazie ad uno script vbs si potrà così creare un oggetto ADSystemInfo che raccoglie tutte le informazioni presenti in Active Directory e mostrarle nella firma. Nella figura qui di seguito potrete notare che è possibile estrarre qualsiasi attributo presente nell’utente da includere nella firma.

ADattributes

Nella seguente immagine troverete impostati i principali attributi utili nell’utilizzo della firma:

UserAD

Ecco un esempio già pronto ed il relativo codice:
Signature

On Error Resume Next 
Set objSysInfo = CreateObject("ADSystemInfo") 
strUser = objSysInfo.UserName 
Set objUser = GetObject("LDAP://" & strUser) 
strName = objUser.FullName 

strNome = objUser.Description 
strUfficio = objUser.physicalDeliveryOfficeName
strReparto = objUser.Department
strTitolo = objUser.Title
strSocieta = objUser.company 
strVia = objUser.streetAddress 
strLocalita = objUser.l
strTelefonoFisso = objUser.telephoneNumber 
strFax = objUser.FacsimileTelephoneNumber
strCellulare = objUser.Mobile
strProvincia = objUser.st
strEmail = objUser.mail

Set objWord = CreateObject("Word.Application") 
Set objDoc = objWord.Documents.Add() 
Set objSelection = objWord.Selection 
Set objEmailOptions = objWord.EmailOptions 
Set objSignatureObject = objEmailOptions.EmailSignature 
Set objSignatureEntries = objSignatureObject.EmailSignatureEntries 
Set objShape = objSelection.InLineShapes.AddPicture("\\NOMESERVER\CONDIVISIONE\logofirma.jpg") 

objSelection.TypeParagraph()
'objSelection.TypeText chr(11)
objSelection.Font.Size = "8" 
objSelection.Font.Name = "Verdana" 
objSelection.Font.Bold = true 
objSelection.TypeText strNome   
if not strTitolo="" then 
	objSelection.Font.Size = "6"  
	objSelection.Font.Bold = false 
	objSelection.Font.Italic = true 
	objSelection.TypeText Chr(11) & strTitolo 
end if
if not strUfficio="" then 
	objSelection.Font.Size = "6"  
	objSelection.Font.Bold = false 
	objSelection.Font.Italic = false 
	objSelection.TypeText Chr(11) & strUfficio 
end if
if not strReparto="" then 
	objSelection.Font.Size = "6"  
	objSelection.Font.Bold = false 
	objSelection.Font.Italic = false 
	objSelection.TypeText Chr(11) & strReparto 
end if 

objSelection.TypeParagraph() 


'objSelection.Style = "No Spacing" 
objSelection.Font.Italic = true 
objSelection.Font.Color = RGB(45,129,81)
objSelection.Font.Size = "8"   
objSelection.Font.Name = "Verdana" 
objSelection.Font.Bold = true 
objSelection.TypeText "NOMEAZIENDA" & Chr(11) 
objSelection.Font.Size = "6"  
objSelection.TypeText "INDIRIZZO" & Chr(11)
objSelection.TypeText "CAP LOCALITA (PROV)" & Chr(11)
objSelection.TypeText "Telefono: NUMERODITELEFONO" & Chr(11)
objSelection.TypeText "Fax: NUMERODIFAX"
if not strCellulare="" then objSelection.TypeText Chr(11) & "Mobile: " & strCellulare
objSelection.TypeText Chr(11) & "E-mail: " & strEmail 
objSelection.TypeParagraph() 

Set objSelection = objDoc.Range() 

objSignature = objSignatureEntries.Add("Firma con logo", objSelection) 
objSignatureObject.NewMessageSignature = "Firma con logo" 
objSignatureObject.ReplyMessageSignature = "Firma con logo" 
objDoc.Saved = True 
objWord.Quit 

Verificare e modificare i ruoli FSMO di un dominio Windows

Domain roles Dovete migrare un server e volete controllare/spostare i ruoli FSMO?
Basterà usare i comandi netdom e ntdsutil.

Quando ci si appresta a depromuovere un controller di dominio capita spesso la necessità di spostare i relativi ruoli FSMO. Come verificare quali sono i ruoli attivi su di un server senza entrare ed uscire da svariate management console?

Il primo passo da fare è verificare i ruoli FSMO del dominio.
Per far ciò lanciate il comando:

netdom query fsmo

Il risultato sarà:

Master schema               [NOME_VECCHIO_SERVER.domain.local]
Master denominazione domini [NOME_VECCHIO_SERVER.domain.local]
PDC                         [NOME_VECCHIO_SERVER.domain.local]
Gestione pool RID           [NOME_VECCHIO_SERVER.domain.local]
Master infrastrutture       [NOME_VECCHIO_SERVER.domain.local]
Esecuzione comando riuscita.

Se volete invece trasferire ad un nuovo server i ruoli FSMO allora usate il comando ntdsutil, che vi consente di farlo in modo efficace e rapido.
Ecco la procedura di utilizzo:

ntdsutil: roles
fsmo maintenance: connections
server connections: connect to server [nome del server a cui migrare i ruoli]
server connections: quit
fsmo maintenance: Transfer schema master
fsmo maintenance: Transfer naming master
fsmo maintenance: Transfer PDC
fsmo maintenance: Transfer RID master
fsmo maintenance: Transfer infrastructure master
[vedi Nota1]
fsmo maintenance: quit
C:\Windows\system32\ntdsutil.exe: quit

[Nota1]
Ad ogni comando transfer viene trasferito un ruolo (rispettivamente Schema, Master per la denominazione, PDC, RID, Infrastrutture)
Alla fine dell’ultimo comando transfer il risultato sarà:

Schema - CN=NTDS Settings,CN=[NOME_NUOVO_SERVER],CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=cartcamp,DC=local

Master per la denominazione - CN=NTDS Settings,CN=[NOME_NUOVO_SERVER],CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=cartcamp,DC=local

PDC - CN=NTDS Settings,CN=[NOME_NUOVO_SERVER],CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=cartcamp,DC=local

RID - CN=NTDS Settings,CN=[NOME_NUOVO_SERVER],CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=cartcamp,DC=local

Infrastrutture - CN=NTDS Settings,CN=[NOME_NUOVO_SERVER],CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=cartcamp,DC=local