Kasutajate paroolid ja nende aegumine

Mõni aeg tagasi sai kirjutatud sellest, kuidas avastada domeenist kontosid, mida pole ammu kasutatud.  Muuhulgas sai siis ka mainitud, et selliseid kontosid leiab näiteks selle järgi, et nad pole ammu oma parooli muutnud. Parooli muutmine ja selle regulaarne nõudmine on tänapäeval üpris tavaline.  Selle tõttu aga tekivad pidevalt probleemid inimsete (või teenuste) sisselogimisega.  Seda eriti juhul, kui inimene kasutab veebipõhist rakendust, mis ei oska parooli aegumisel pakkuda paroolivahetust. Või siis on probleemid inimestel, kes lähevad natuke pikemaks ajaks kontorist ära ning parool aegub just sel ajavahemikul. Kuidas siis tuvastada, et inimese parool hakkab kohe (varsti) aeguma.  Esimese hooga võiks ju pakkudua, et Powershelli käsk Search-ADAccount on hea mõte.  Ent natuke edasi vaadates tuleb välja, et see oskab otsida juba aegunud parooliga kodanikke, kes enam ei saa sisse.  Meie aga tahaks hoopis teada, kellel varsti hakkab parool aeguma. Ega siin ei jäägi muud üle, kui otsida domeenist kasutajaid ning vaadata, millal nende parool viimasti muudetud sai:

#Requires -Modules ActiveDirectory
Get-ADUser -filter * -Properties PasswordLastSet

Nüüd tuleb vaid juurde vaadata, et milline on paroolipoliitika:

$passwordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge

Ja siis saab arvutada kuupäeva, millal parool aegub ehk siis mitu päeva tänasest veel parool kehtib:

$user = Get-ADUser mati –Properties Mail,PasswordLastSet

$expiresTime = $user.PasswordLastSet.Add($passwordAge) - (Get-Date)

Edasi tuleb tuvastada teavitamisvajadus.  Ütleme, et kasutajat tuleb teavitada, kui parool aegub 5 või vähema päeva pärast:

if ($expiresTime.Days -le 5 ) {
  #teavitame
}

Kas teavitus on ekraani peal tekstiaken või saadetud e-mail, sõltub juba sellest, et kuidas me teavitada soovime. Kui ise ei suuda otsustada, et mitu päeva ette tuleks teavitada, siis võib kasutada ka Windowsi registrisse kirjutatud väärtust:

$notifyDays = Get-ItemProperty -Name PasswordExpiryWarning `
  -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' |
  Select-Object -ExpandProperty PasswordExpiryWarning

if ($expiresTime.Days -le $notifyDays ) {
  # ...
}

Mainitud registri väärtust saab muuta ka Group Policy abil. Ülaltoodu on piisav, kui ettevõttes ei ole kasutusel Fine-Grained Password Policy.  Kui aga on, siis tuleb parooli aegumise tähtaega hoopis kasutaja küljest otsida:

$domainFunctionalLevel = (get-addomain).DomainMode

if ($domainFunctionalLevel -ge 3) {
  ## Windows2008 domain functional level or greater
  $accountFGPP = Get-ADUserResultantPasswordPolicy $user
  if ($accountFGPP) {
    $passwordAge = $accountFGPP.MaxPasswordAge
  }
}

Kui tuvastada ühe kasutaja parooli aegumist näiteks Logon skripti abil, siis tuleks ülatoodud kasutaja leida ühel järgmistest viisidest:

$user = Get-ADUser ([Security.Principal.WindowsIdentity]::GetCurrent().user)

$user = Get-ADUser ("{0}\{1}" -f $env:USERDOMAIN, $env:USERNAME)

Kui tuvastada kõik kasutajad, kelle parool aegub teatud aja pärast, siis peaks tegema midagi sarnast:

$users = Get-ADUser  –Properties PasswordLastSet `
  –Filter {Enabled –eq $true -and PasswordNeverExpires -eq $false -and PasswordExpired -eq $false -and logonCount -ge 1}  |
  Where-Object {! $_.CannotChangePassword}

foreach ($user in $users) {
  # …
}

Mõned aastad tagasi sai kirjutatud Powershelli script, mille eesmärgiks oligi tuvastada kasutajad, kelle parool aegub teatud arvu päevade pärast, ning saata neile e-maili teel teavitus.  Nimetatud skript sai hiljuti laetud ka Techneti skriptide galeriisse.  Nii et kui selle artikli järgi ise omale sobivat skritpti kokku ei oska/taha/suuda panna, siis võib juba valmis skripti alla laadida.

Advertisements

Kasulik on jälgida teiste inimeste blogisid.  Ben Armstrong näitab oma blogis, kuidas muuta Hyper-V kliendirakenduses ekraaniresolutsiooni. Siiani olen arvanud, et võimalik on ainult resolutsioon suhtega 4:3, ent tuleb välja, et  Windows 8/Server 2102 virtuaalmasina puhul saab ka muud.  Ent Windows 7/Server 2008 R2 keelduvad tunnistamast, et mõni muu resolutsiooni suhe peale 4:3 olemas on, kui nad virtuaalmasinana töötavad.  Seda sõltumata Hyper-V komponentide versioonist.

Server 2012 R2 ja Windows 8.1 puhul on asi aga veelgi parem.  Nimelt kasutab Virutal Machine Connection klient virtuaalmasinaga ühenduse saamiseks RDP protokolli, mistõttu saab seal valida suvalist resolutsiooni, võtta kaasa USB seadmeid ja teha kõike muud, mida RDP lubab.  Ja seda ka virtuaalmasinaga ühendumisel,  millel omal võrku polegi.

Õnnetuseks on (vähemalt esialgu) seda võimalik teha vaid juhul, kui virtuaalmasinas on samuti Windows 8.1 või Server 2012 R2.

Microsofti uued tooted ja sertifitseerimine

Alles see oli (möödunud aastal), kui tulid välja System Center 2012, Windows 8 ja Windows Server 2012.  Ja juba kuulutati välja Windows 8.1, Server 2012 R2 ja System Center 2012 R2.  Spetsialistid, kes tahavad tõestada oma oskusi, pole veel eelmiste toodete eksameidki ära jõudnud teha.  Et mis nüüd saab?

Õnneks pole asi väga hull.  Kuigi toodete versioonid vahetuvad, siis juba praegu olemasolevad eksamid kehtivad edasi ka uute toodete kohta.  Aja jooksul (alates jaanuarist 2014) tuleb eksamitesse uute toodete teemasid.  Samas, kui eksamid kohe ära teha, siis kehtivad need edasi ning uue sisu lisandumisel eksameid kordama ei pea.

Seega tasub eksamitele minna pigem kohe, kui ära oodata uute tooteversioonide ning eksamiküsimuste valmimine.  Pealegi ei teavita Microsoft tavaliselt eksamiküsimuste vahetumist või eksamil aluseks oleva toote versiooni muutumist.

Kes tahab ise uurida, võib lugeda Microsoft Learning tiimi blogi artiklit või siis juba eksamite kirjeldusi.