Active Directory, Exchange si PowerShell

 

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.

Windows Phone 7 "Rockstar" Award

A apărut o nouă secțiune faină în Imagine Cup 2010. Este vorba despre Windows Phone 7 "Rockstar" Award, în care echipe a câte maxim 4 studenți trebuie să creeze o aplicație pentru dispozitivul mobil.

La întrebarea: Cum putem crea aplicații pentru un dispoztivi pe care nu-l avem?

Răspunsul: Se pot realiza aplicații pe emulatoare. Pe Softpedia puteți găsi Windows Phone 7 Emulator and Developer Tools. Oficialul cred că poate fi găsit aici.

Pentru înregistrare și detalii mergeți la adresa: http://imaginecup.com/Competition/mycompetitionportal.aspx?competitionId=47

Premiile sunt faine și pe lângă bani sunt oferite și câte un mobil WindowsPhone 7.

Succes și sper să vă fie utilă informația!

Update: Cartea pentru programarea aplicatiilor pt WindowsPhone 7:

clip_image001

Available for Free : (153 pages)

PDF Version : http://download.microsoft.com/download/7/C/8/7C820C6F-C205-4ECF-B9F3-1505DD13F9BF/ProgWinPhonePreview.pdf

XPS Version : http://download.microsoft.com/download/E/3/5/E359FC51-1CF5-47F1-9BF3-74AB09D3339B/ProgWinPhonePreview.xps

Code samples : http://download.microsoft.com/download/1/D/B/1DB49641-3956-41F1-BAFA-A021673C709E/CodeSamples_DRAFTPreview_ProgrammingWindowsPhone7Series.zip

Guvernul la Iași – Cine are prioritate?

Astăzi veneam ca de obicei la serviciu, cu rabla mea de mașină.

În fața barierei, un domn în costum și un portar.

  • – Vă rugăm să parcați în altă parte.
  • – De ce?
  • – Pentru că a venit Guvernul la ședință la Iași și nu aveți voie să intrați aici.
  • – De ce? Ce dacă a venit Guvernul, doar nu face ședință în parcare?
  • – Nu dar are prioritate în parcare.

Așadar eram pus într-o postură destul de ingrată, pentru că oricum nu sunt locuri de parcare pe lângă Universitate… așa că riscam să nu ajung la ore. Mi-am luat inima în dinți și i-am spus:

  • – Domnule, în fața Guvernului, a Politicii și Politicienilor, prioritate am EU în calitate de responsabil al formării generațiilor viitoare.

Am deschis bariera din telecomandă și am intrat cu nesimțire în parcarea aproape goală.

Fiecare politician consideră Educația o prioritate, dar când vine vorba de fapte eu trebuie să stau drepți în fața Guvernului. Nu prea cred!

Relația de subordonare este inversă din prisma mea, pentru că dumnealor vin la guvernare 4 ani se umplu de oprobiul general prin ceea ce fac, pe când eu mă umplu de Glorie de-a lungul vieții. Ei trebuie să-mi servească intereselor mele, nu eu lor! Asta înseamnă autonomie universitară și prioritate în Educație! Vremea ciocului mic și a botului pe labe a trecut de mult. Atâta timp cât studenți mei câștigă premii internaționale sau sunt angajați pe bani grei în industria de profil, poți ține capul sus și a mă prioritiza deasupra Guvernului.

 

Nu am nimic cu politica și politicienii, dar am o problemă cu încălcarea depturilor mele în contextul în care trebuie să-mi onorez obligațiile pe baza lor.

Blog la WordPress.com.

SUS ↑