PowerShell este un instrument din ce în ce mai utilizat. Scriptul următor poate fi folosit pentru crearea userilor în Active Directory şi trimiterea unui e-mail inţial de informare despre anumite resurse de access.
Scriptul trebuie salvat şi rulat cu drepturi administrative pe serverul de e-mail (Exchange 2007) care ar trebui să aibă instalat și PowerShell-ul. Din punct de vedere managerial, NU este corect ca parola utilizatorului să fie trimisă prin e-mail. Alte comentarii în cadrul scriptului.
O varianta în VBS poate fi găsită la adresa: http://searchwindevelopment.techtarget.com/tip/0,289483,sid8_gci1086268,00.html dar se foloseste doar pentru crearea contului şi a mail box-ului nu şi trimiterea de e-mail. Consider utilizarea PowerShell mult mai simplă şi mai uşor de utilizat.
Copiaţi scriptul de mai jos în Notepad sau alt editor de text şi schimbaţi valorile constantelor. Lansarea scriptului: ./psADAccCreate-MailSend.ps1 <prenume> <nume>
***** psADAccCreate-MailSend.ps1 ***** # Creare cont de utilizator in AD, * # adresa mail in Exchange 2007 si * # trimitere email * # * # Creat de: Valy Greavu * # 09/11/2008 * # ************************************** # Scriptul trebuie executat pe serverul de e-mail cu rol de mailbox # Preluarea parametrilor de rulare: Nume, Prenume, Parola param ([string] $Prenume, [string] $Nume) # Definirea constantelor: $Domain = "feaa.uaic.ro" #Trebuie specificat numele complet de DNS $ou = $Domain + "/Utilizatori/Studenti" #Este specificata toata calea incepind de la numele domeniului $MailDB = "MAIL\StudentStore\StudentsDB" #Se modifica in functie de numele serverului si a bazelor de date specifice. $SenderAdmin = "valy.greavu@feaa.uaic.ro" #Adresa de mail a adminului. $SMTPServer = "mail.feaa.uaic.ro" # Verificarea datelor introduse if ($Prenume -eq "") { write-host "Prenumele nu a fost introdus!" -foregroundcolor Red write-host "Exemplu utilizare: ./psADAccCreate-MailSend.ps1 <prenume> <nume>" -foregroundcolor Red } elseif ($Nume -eq "") { write-host "Numele nu a fost introdus!" -foregroundcolor Red write-host "Exemplu utilizare: ./psADAccCreate-MailSend.ps1 <prenume> <nume>" -foregroundcolor Red } else { write-host "Incepe crearea contului pentru:" $Prenume $Nume -foregroundcolor Green # Crearea contului si a adresei de mail # Parola trebuie introdusa in aceasta etapa # Parola nu poate fi trecuta in script pentru ca este incompatibila cu System.Security.SecureString # ResetPasswordOnNextLogon trebuie sa fie $false pentru ca utilizatorul sa se poata conecta la sistemul de mail inainte de a isi schimba parola. # Daca acesta se va loga pentru prima data pe un calculator din domeniu atunci va trebui parametrul trebuie setat pe $true New-Mailbox -Name "$Prenume $Nume" -Alias $Prenume"."$Nume -OrganizationalUnit $ou -UserPrincipalName $Prenume"."$Nume"@"$Domain -SamAccountName $Prenume"."$Nume -FirstName $Prenume -LastName $Nume -ResetPasswordOnNextLogon $false -Database $MailDB # Comanda New-Mailbox trebuie scrisă pe o singură linie write-host "Am creat contul:" $Prenume $Nume -foregroundcolor Green # Compunere e-mail initial $Destinatar = $Prenume+"."+$Nume+"@"+$Domain $Subiect = "Bun venit in reteaua :"+$Domain+"!" # Corp mesaj scris linie cu linie. # Combinatia `r`n face trecerea pe rindul urmator in continutul mailului. $bodyln1 = "`r`Salut "+$Prenume + "`r`n" $bodyln2 = "`r`Te informam ca adresa ta de e-mail: " + $Destinatar + " poate fi accesata prin Outlook sau prin OWA la adresa: https://"+$SMTPServer+"/owa. `r`n" $bodyln3 = "Te rugam sa respecti politicile de securitate si regulamentele afisate in sistemul de Intranet accesibil la adresa: http://Intranet/. `r`n" $bodyln4 = "`r`Pentru a schimba parola de acces in retea te rugam sa folosesti combinatia de taste Ctrl+Alt+Del sau legatura de pe prima pagina din Intranet.`r`n" $bodyln5 = "Pentru orice fel de probleme va rugam sa va adresati departamentului de Help Desk la adresa de mail: support@"+$Domain+".`r`n" $bodyln6 = "Cu stima,`r`n <em>Departamentul IT</em>.`r`n" $body = $bodyln1 + $bodyln2 + $bodyln3 +$bodyln4 +$bodyln5 + $bodyln6 $msg = new-object System.Net.Mail.MailMessage $SenderAdmin, $Destinatar, $Subiect, $body # Trimitere email $client = new-object System.Net.Mail.SmtpClient $SMTPServer $client.credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials $client.Send($msg) write-host "Am trimis mail:" -foregroundcolor Yellow write-host "Terminat!" -foregroundcolor Green } # **** EOF() ****
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, „Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
Firul de execuţie:
1. Lansare PowerShell cu drepturi administrative şi navigare în directorul de scripturi:
2. Rulare comanda în mod eronat:
3. Rulare comanda corect:
4. Mail initial:
Trebuie retinut ca marcajele HTML sunt interpretate ca si text dar adresele HTTP, HTTPS sunt interpretate corect.
Acest articol este o republicare din vechiul meu blog.
V-am trimis un mail pe adresa dvs si v-am cautat azi in 327a…puteti sa imi raspundeti va rog?
ApreciazăApreciază