Creating homefolders via Powershell

By Michael Stoica - Last updated: Monday, April 22, 2013

Din nevoia de a crea home foldere pentru aproximativ 70 useri si de a le da si permisiuni, m-a gandit sa caut o varianta cat mai rapida si profesionista as zice eu.  Voiam sa fac chestia asta prin Powershell si in cele din urma am reusit sa fac urmatorul script care creaza folderele si da permisiuni inherited userilor.

$Users = Get-Content "C:\Users.txt"

ForEach ($user in $users)

{

$newPath = Join-Path "\\fileserver\homefolder" -childpath $user

New-Item $newPath -type directory

$acl = Get-Acl $newpath

$permission = "domeniu\$user","FullControl","Allow"

$inherit =[system.security.accesscontrol.InheritanceFlags]"ContainerInherit,ObjectInherit"

$propagation=[system.security.accesscontrol.PropagationFlags]"None"

$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ("domeniu\$user", "FullControl", $inherit, $propagation, "Allow")

$acl.SetAccessRule($accessRule)

$acl | Set-Acl $newpath

}

Lista cu userii o puteti obtine tot via Powershell prin comanda de mai jos:

Get-ADUser -Filter * -SearchBase "OU=TestUsers,DC=domeniu,DC=ro" -Properties * | Select-Object -property SamAccountName| Export-CSV c:\Users.csv 

Iar urmatorul pas dupa crearea folderelor este sa setati Home Folder in proprietatile userului in Active Directory pentru ca maparea sa se faca automat dupa logon. Urmatoarea comanda va enumera userii dintr-un OU specificat si le va seta calea catre homefolder.

Get-ADUser -Filter * -SearchBase "OU=TestUsers, dc=domeniu,dc=ro" | %{set-aduser-identity $_ -HomeDirectory (‘\\fileserver\homfolder\’+ $($_.SamAccountName)) -homedrive"n:"}

Filed in Active Directory, Scripting, Windows Server • Tags:

NTFS Permission Reporter

By Andrei Ungureanu - Last updated: Friday, April 19, 2013

NTFS Permission Reporter este un alt tool din categoria “must have”.

Iti permite sa generezi rapoarte cu permisiunile de securitate de pe share-uri, foldere remote sau locale.

image

image

Este destul de util atunci cand se cere asa ceva si te scuteste de multa munca (scripting).

Optiunile de export sunt CSV sua HTML.

image

Si cam asa arata un raport HTML (nu e recomandat pentru filesystem-uri mari deoarece output-ul poate fi imens si destul de greu de manevrat in browser).

image

Il puteti downloada free de aici:

http://www.cjwdev.co.uk/Software/NtfsReports/Download.html

Filed in Windows Server • Tags:

Getting product version from the command line

By Andrei Ungureanu - Last updated: Wednesday, April 17, 2013

Cateodata e nevoie sa afli rapid ce versiune a unei anumite componente software este instalata pe un sistem. Metode de a afla sunt multe dar in cazul de fata eu cautam o varianta rapida din command prompt.

Si merge foarte simplu folosind WMIC:

image

Merge sa rulati si WMIC PRODUCT GET NAME,VERSION direct din command prompt fara a mai intra inainte in WMIC.

Sau daca stiti numele produsului puteti folosi clauza WHERE si nu numai atat, puteti cauta si numai dupa o parte din nume ca in exemplul de mai jos:

image

WMIC product where "name like ‘Vmware%’" get name,version

De retinut aici este ca wildcard-ul este % si nu *.

Iar pentru fanii Powershell in imaginea de mai jos aveti si aceasta varianta:

image

GWMI este un alias pentru Get-WmiObject.

Filed in Windows Server • Tags: , ,

Must have tool – WinDirStat

By Andrei Ungureanu - Last updated: Friday, April 12, 2013

Un admin ocupat sigur se loveste in fiecare zi de problema lipsei de spatiu pe disk-ul unui server. Ca a fost prost dimensionat de la inceput, ca utilizarea lui a crescut brusc sau ca pur si simplu profilele unor anumiti utilizatori au strans mult prea multe date, problema trebuie rezolvata cumva si nu in toate cazurile puteam extinde partitia repectiva.

WinDirStat dupa cum si numele ne spune este un Windows Directory Statistics tool. Il puteti descarca din link-ul urmator:

http://windirstat.info/

Sau puteti obtine si o versiune portabila de aici: http://portableapps.com/apps/utilities/windirstat_portable

image

Utilizarea este intuitiva si il puteti folosi foarte usor pentru a explora structura de foldere de pe disk-uri si a observa ce tip de fisiere ocupa cel mai mult spatiu.

Filed in Windows Server • Tags:

Manual SCEP 2012 Client Install

By Andrei Ungureanu - Last updated: Tuesday, April 9, 2013

System Center Endpoint Protection aka SCEP este suita antivirus a Microsoft ce se integreaza foarte bine in suita de produse System Center. Problema e ca solutia este atat de integrata cu System Center incat cu greu gasesti ceva informatii ca sa folosesti clientul SCEP si fara System Center. Dar asta nu inseamna ca nu este posibil. Cleintul il puteti obtine dupa o instalare completa de System Center cu Endpoint Protection sau pur si simplu din ISO-ul pe care vine SCEP 2012 in folderul SMSSETUP\CLIENT.

Instalarea manuala este utila atunci cand avem sisteme ce nu sunt in domeniu sau pur si simplu un environment foarte mic cu pana in 10 servere si nu dorim toate functionalitatile din suita System Center ci doar un client AV pe care sa il monitorizam manual.

Si cum pe servere, in functie de rolurile si aplicatiile instalate trebuie setate exceptii o sa avem nevoie de tool-urile de aici:

http://www.microsoft.com/en-us/download/details.aspx?id=13088

Chiar daca sunt pentru 2010 merg foarte bine si pe 2012. In fepserverrolepoliciesforusewithconfigmgrui.exe o sa gasim politicile pentru cateva din rolurile foarte populare cum ar fi AD, Exchange, Sharepoint, SQL, IIS, etc. Mai jos se poate vedea cum se porneste instalarea folosind policy-ul pentru Exchange.

image

image

Iar dupa instalare se pot vedea exceptiile facute in SCEP pentru a nu afecta functionarea serverului de Exchange. Bineinteles ca in functie de scenariul fiecaruia este posibil ca o parte din setari sa trebuiasca ajustate.

image

image

Filed in Security • Tags:

Exchange 2013 CU1

By Andrei Ungureanu - Last updated: Wednesday, April 3, 2013

Mult asteptatul Exchange 2013 CU1 a fost lansat. Pentru cei ce nu stiau, acesta este build-ul de care aveti nevoie pentru a putea integra Exchange 2013 cu versiunile anterioare (2010 si 2007). Spre deosebire de celelalte update-uri pentru Exchange de pana acum acesta vine sub forma unui full build, deci il puteti folosi sa instalati un server nou cu Exchange. Detalii mai jos:

http://blogs.technet.com/b/exchange/archive/2013/04/02/released-exchange-server-2013-rtm-cumulative-update-1.aspx

http://www.microsoft.com/en-us/download/details.aspx?id=38176

Filed in Exchange • Tags:

Securing SMTP Traffic in Exchange 2010/2007

By Andrei Ungureanu - Last updated: Wednesday, March 27, 2013

Inca mai exista cazuri in care avem clienti POP3/IMAP ce se conecteaza din diferse locuri din Internet si pe care nu ii putem refuza (si nu accepta nici varianta cu VPN).

Accesul via POP3/IMAP poate fi securizat folosind versiunile SSL ale acestor protocoale si bineinteles deschizand doar porturile pentru versiunile securizate in firewall.

image

image

Dar IMAP si POP3 sunt protocoale doar pentru “email retrieval”. Va trebui sa trimitem email-urile tot via SMTP. In majoritatea cazurilor providerii de internet pun la dispozitia clientilor servere de SMTP prin care acestia pot face relay la email-uri. Dar sunt cazuri in care nu avem aceasta varianta si atunci va trebui sa le permitem sa faca relay direct prin SMTP-ul de pe Exchange. Open Relay nu putem face, nici reguli dupa IP, deci singura varianta a ramas cea cu autentificare pe SMTP.

Problema e ca trebuie sa securizam cumva macar trimiterea credentialelor sau si mai bine toata conexiunea. Doar ca varianta SMTP SSL ce teoretic functiona pe portul TCP 465 nu mai este implementata in Exchange 2007/2010. In schimb serverul SMTP suporta criptarea conexiunii peste acelasi port. Deci conexiunea poate incepe pe portul 25 si dupa EHLO se incepe conexiunea criptata folosind STARTTLS. Chestia ce mi se pare putin ciudata este ca e greu cateodata sa iti dai seama daca folosesti o conexiune criptata sau nu.

Totusi ca sa le diferentieze s-a stabilit cumva ca astfel de conexiuni de la clienti catre serverele de SMTP sa se faca peste portul 587. Si chiar din acest motiv veti vedea in Exchange inca un receive connector setat pe acest port si cu setarile necesare sa permita comunicarea criptata intre client si server.

image

image

Nota: In cazul conexiunilor externe, Integrated Windows Authentication se refera la NTLM ce va funtiona peste conexiunea SMTP.

Deci permitem accesul catre conectorul ce asculta pe portul 587 iar in clientul de email face setarile ca mai jos (sau apropiat).

image

Important este sa folosim portul pe care este setat conectorul si sa bifam optiunea “This server requires a secure conexion (SSL)”. Cu aceasta optiune activata clientul va cere serverului inceperea conexiunii securizate folosind comanda STARTTLS. Chiar si fara, folosind conectorul default pe portul 587 in procesul de autentificare va fi folosit NTLM, insa de preferat este TLS.

Sper sa mai foloseasca informatia asta si altora care inca mai lovesc de POP3/IMAP.

Spor!

Filed in Exchange • Tags: , , ,

Listing local group members via Powershell

By Andrei Ungureanu - Last updated: Friday, March 22, 2013

Tot cautam un exemplu bun zilele astea pentru subiectul din titlu si am gasit ceva ce merge pe forumul powershellcommunity.org:

Nu este un exemplu classic powershell, pentru ca nu exista un cmdlet pentru asa ceva, insa important este ca merge si poate fi adaptat pentru mai multe cazuri.

Mai jos am pus cele doua exemple, unul care scoate numele grupului si inca unul ce pune si numele computerului (daca este grup local) sau numele domeniului. Bineinteles ca va fi nevoie de ceva extra procesare pentru a scoate WinNT:// din fata grupului insa nu e chiat atat de complicat.

$group =[ADSI]"WinNT://./Administrators"
$members = @($group.psbase.Invoke("Members"))
$members | foreach {$_.GetType().InvokeMember("Name", ‘GetProperty’, $null, $_, $null)}

image

function Get-localgroupmembers ([string]$localcomputername, [string]$localgroupname) {
$groupobj =[ADSI]"WinNT://$localcomputername/$localgroupname"
$localmembers = @($groupobj.psbase.Invoke("Members"))
$localmembers | foreach {$_.GetType().InvokeMember("AdsPath","GetProperty",$null,$_,$null)}

image

Filed in Scripting • Tags: ,

IE10 Hacked but it’s not the only one

By Andrei Ungureanu - Last updated: Thursday, March 14, 2013

Cand ziceam si noi ca poate se mai aseaza lucrurile si macar browserele devin putin mai sigure iar vine un val imens de exploit-uri. Ce este surprinzator este ca pana si noul browser IE10 cu care MS incearca sa ne convinga ca a revenit pe drumul cel bun a picat testele de la Pwn2Own.

Problema si mai mare e ca si restul browserelor din top au cedat (Chrome, Firefox). Gasiti aici rezultatele de la Pwn2Own 2013:

http://nakedsecurity.sophos.com/2013/03/07/pwn2own-results-java-chrome-ie-10-and-firefox-owned-on-day-one/

http://nakedsecurity.sophos.com/2013/03/08/pwn2own-results-day-two-adobe-reader-and-flash-owned-java-felled-yet-again/

Si daca va ganditi ca in patch-urile de luna asta de la MS s-a rezolvat problema cu IE, think again. Nu s-a rezolvat.

In ritmul asta mai e putin si singura varianta ca sa iti securizezi sistemul va fi sa il scoti din priza.

Filed in Security • Tags:

Show-Command in Powershell v3

By Andrei Ungureanu - Last updated: Tuesday, March 12, 2013

Cred ca am mai pomenit odata ca Show-Command este un mare plus in Powershell v3. Show-Command e un fel de extensie pentru putorosi sau si pentru cei care nu au chef sa isi incarce memoria cu syntaxa comenzilor powershell sau cu numele parametrilor.

Noul cmdlet se foloseste in combinatie cu restul comenzilor powershell si ofera access la sintaxa si parametrii acestora intr-o interfata grafica foarte usor de folosit. De exemplu sa spunem ca nu suntem foarte familiari cu Get-Service, atunci rulam Show-Command Get-Service:

image

Si sa zicem ca vrem sa listam toate serviciile ce incep cu litera A. In tab-ul DisplayName completam campul Displayname cu A*.

image

Selectam Run, si show-service o sa trimita catre powershell comanda get-service cu parametrii necesari pentru a face ce dorim:

image

Si inca un exemplu bun ar fi Show-Command Add-Computer:

image

Format-ul este foarte intuitiv si oricine va putea joina un sistem la domeniu via Powershell. Sau daca nu, macar va folosi optiunea WhatIf si va vedea sintaxa corecta pentru a folosi Add-Computer.

Bineinteles ca tot va trebui sa va mai uitati din cand in cand si in help pentru a vedea semnificatia anumitor parametri. Dar oricum pare mult mai simplu.

Filed in Scripting • Tags: