none
vypršení platnosti hesla

    Dotaz

  • Ahoj,

    předně říkám, že jsem hledal na google a sám se divím, že jsem odpověď nenašel.

    uživatelům v doméně se zobrazuje hlášeka o tom, že jejich heslo vyprší v X dnech. Nastavolval jsem GPO na Maximální stáří hesla na 0, stejně tak nějaké další parametry jako minimální délka hesla atd.. Nicméně nic nezabralo.

    Zjistil jsem, že opravdové hodnoty se berou z atributů té konkrétní domény (když si v ADUC kliknu pravým na doménu a dám vlastnosti a zobrazím editor atributů) - maxPwdAge je nastavena stále na 42, stejně tak jako minPwdLength je nastavena na 1, což sem nastavoval kdysi kvůli nějakému testu..

    teďka je to tedy tak, že ať nastavím v GPO v Default domain policy, tak nic nezafunguje, v atributech té domény stále zůstává to, co tam bylo nastaveno. i když udělám na serveru i na klientovi gpupdate /froce, resetuju klienta i server, v rsop klienta a takžéž v net accounts puštěném na klientovi to ukáže hodnoty z GPO - tedy že heslo nevyprší. Ale pokud se na klientovi pihlásím, tak to opět zahlásí, že heslo vyprší podle atributu maxPwdAge v doméně..

    Mám tedy pocit, že jsem buď nějakej princip GPO nepochopil a funguje to tak, jak má a já musím pwdage nastavit v atributech domény, což se mi jednak nezdá a druhak teda nechápu, k čemu ty nastavení v GPO jsou, co tím teda nastavuji a nebo něco nefunguje, jak by mělo:(

    Všechny jiné politiky z Default Domain policy se normálně aplikují, propojená s doménou je správně, WMI filtr žádný..

    Prosím, pomohlo mi, kdyby si někdo našel čas na objasnění toho, co se tam ve skutečnosti děje.

    Díky

    Rob

    29. listopadu 2011 2:36

Odpovědi

  • 1. Mne pomohl reset uzivatelskeho uctu, pokud uz ubehla doba expirace (v prostredi AD 2008 R2). Jinak se s tim nedalo nic jineho delat. Jak byl provedeny reset uzivatele?

    2. Pro doplneni FG GPO: http://technet.microsoft.com/en-us/library/cc770842(WS.10).aspx

    3. Pro pripad W2K8+ by mne zajimal vysledek skriptu:

    Get-XADUserPasswordExpirationDate nejaky_uzivatel

    kde funkce Get-XADUserPasswordExpirationDate vypada takto:

    function Get-XADUserPasswordExpirationDate() {
    Param ([Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true, HelpMessage="Identity of the Account")]
    [Object] $accountIdentity)
    PROCESS {
    $accountObj = Get-ADUser $accountIdentity -properties PasswordExpired, PasswordNeverExpires, PasswordLastSet
    if ($accountObj.PasswordExpired) {
    echo ("Password of account: " + $accountObj.Name + " already expired!")
    } else {
    if ($accountObj.PasswordNeverExpires) {
    echo ("Password of account: " + $accountObj.Name + " is set to never expires!")
    } else {
    $passwordSetDate = $accountObj.PasswordLastSet
    if ($passwordSetDate -eq $null) {
    echo ("Password of account: " + $accountObj.Name + " has never been set!")
    } else {
    $maxPasswordAgeTimeSpan = $null
    $dfl = (get-addomain).DomainMode
    if ($dfl -ge 3) {
    ## Greater than Windows2008 domain functional level
    $accountFGPP = Get-ADUserResultantPasswordPolicy $accountObj
    if ($accountFGPP -ne $null) {
    $maxPasswordAgeTimeSpan = $accountFGPP.MaxPasswordAge
    } else {
    $maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
    }
    } else {
    $maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
    }
    if ($maxPasswordAgeTimeSpan -eq $null -or $maxPasswordAgeTimeSpan.TotalMilliseconds -eq 0) {
    echo ("MaxPasswordAge is not set for the domain or is set to zero!")
    } else {
    echo ("Password of account: " + $accountObj.Name + " expires on: " + ($passwordSetDate + $maxPasswordAgeTimeSpan))
    }
    }
    }
    }
    }
    }

    Zdroj: http://blogs.msdn.com/b/adpowershell/archive/2010/02/26/find-out-when-your-password-expires.aspx

    29. listopadu 2011 10:07
    Moderátor
  • Co jsem tak zkoumal a hledal, tak se domnívám, že jde o konflikt úrovní toho, kde je co nastavené. Prostě nastavení v doméně má vyšší prioritu. Ty si můžeš udělat zásady, kterým nastavíš atribut vynucené a pak by mělo dojít k tomu požadovanému efektu. 

     

    Pořadí zpracování

    http://technet.microsoft.com/cs-cz/library/cc785665(WS.10).aspx
    

    4. prosince 2011 23:55
  • Donutit uživatele měnit hesla je hloupost. 42 dní je zatraceně málo a pak si uživatelé budou ta hesla stejně psát na papírek. To samé pokud to bude třeba 90 dní. Mnohem vhodnější je používat čipové karty.

    No abych se vrátil k dotazu. První možnost je nastavit na kartě každého uživatele položku, že mu heslo nevyprší. 

    Další možností je použít Fine GRained Password Policy

    http://technet.microsoft.com/en-us/library/cc770842(WS.10).aspx
    
    Tam můžeš nastavit platnost vypršení třeba na 20 let - což poměrně stačí.

    Minimální stáří hesla zajišťuje to, že není možné heslo měnit dvakrát za sebou...

    29. listopadu 2011 6:24

Všechny reakce

  • ještě zajímavý je to, že když nějaký atribut hesla (např. maxPwdAge) v atributech té domény, tak se hnedka přenesou VŠECHNY parametry nstavení hesla z atributů domény do GPO Default Domain Policy... Takže jakési propojení mezi doménou a touto politikou existuje, ale nefunguje to na tu stranu, na kterou bych očekával (tedy od GPO -> doména).

    Pokud to někdo dokážete vysvětlit, budu vdščný.

    Rob

    29. listopadu 2011 3:16
  • DD,

    a nastavoval jsi to v nastaveni celé domény nebo u konktrétní OU?

     

    Pokud je u domény nastaveno že platí 42 dní, nemůžeš u menší jednotky říct že platí neomezeně. Navíc se politiky nastavují pro počítač a uživatele. Kterou větev jsi sledoval?

    http://technet.microsoft.com/cs-cz/library/cc785826%28WS.10%29.aspx

     

     

    PS: Proč se ti nelíbí vynucená změna hesla. Je to vlastnš způsob jak uživatele donutit měnit hesla.


    JCH

    29. listopadu 2011 6:00
  • Donutit uživatele měnit hesla je hloupost. 42 dní je zatraceně málo a pak si uživatelé budou ta hesla stejně psát na papírek. To samé pokud to bude třeba 90 dní. Mnohem vhodnější je používat čipové karty.

    No abych se vrátil k dotazu. První možnost je nastavit na kartě každého uživatele položku, že mu heslo nevyprší. 

    Další možností je použít Fine GRained Password Policy

    http://technet.microsoft.com/en-us/library/cc770842(WS.10).aspx
    
    Tam můžeš nastavit platnost vypršení třeba na 20 let - což poměrně stačí.

    Minimální stáří hesla zajišťuje to, že není možné heslo měnit dvakrát za sebou...

    29. listopadu 2011 6:24
  • Pokud si dobre pamatuji je do Win2003 politika hesel jedina spolecna pro celou domenu (nastavuje se v default domain policy a nemelo by byt nastaveno NIKDE JINDE), az ve win2008 se da nastavovat ruzna politika hesel pro ruzne uzivatele/skupiny - viz napr. http://blogs.technet.com/b/seanearp/archive/2007/10/06/windows-server-2008-fine-grained-password-policy-walkthrough.aspx

     

    MP



    29. listopadu 2011 8:39
    Moderátor
  • Ano to jo, ale on nikde verzi WS nepíše..
    29. listopadu 2011 8:42
  • No prave :)

     

    MP

    29. listopadu 2011 8:54
    Moderátor
  • Předpokládám tu lepší variantu...že už má WS2008:) Kdyby ne, tak by jsi měl jako obvykle pravdu :)
    29. listopadu 2011 8:56
  • No kdyz se podivam do svych kristalovych kouli vychazeji mi 2 moznosti:

    - tazatel ma pre-2008 level domeny a snazi se o nemozne

    - tazatel ma 2008 level domenu ale necetl jak se nastavuje fine-grained policy

     

    MP

    29. listopadu 2011 9:08
    Moderátor
  • 1. Mne pomohl reset uzivatelskeho uctu, pokud uz ubehla doba expirace (v prostredi AD 2008 R2). Jinak se s tim nedalo nic jineho delat. Jak byl provedeny reset uzivatele?

    2. Pro doplneni FG GPO: http://technet.microsoft.com/en-us/library/cc770842(WS.10).aspx

    3. Pro pripad W2K8+ by mne zajimal vysledek skriptu:

    Get-XADUserPasswordExpirationDate nejaky_uzivatel

    kde funkce Get-XADUserPasswordExpirationDate vypada takto:

    function Get-XADUserPasswordExpirationDate() {
    Param ([Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true, HelpMessage="Identity of the Account")]
    [Object] $accountIdentity)
    PROCESS {
    $accountObj = Get-ADUser $accountIdentity -properties PasswordExpired, PasswordNeverExpires, PasswordLastSet
    if ($accountObj.PasswordExpired) {
    echo ("Password of account: " + $accountObj.Name + " already expired!")
    } else {
    if ($accountObj.PasswordNeverExpires) {
    echo ("Password of account: " + $accountObj.Name + " is set to never expires!")
    } else {
    $passwordSetDate = $accountObj.PasswordLastSet
    if ($passwordSetDate -eq $null) {
    echo ("Password of account: " + $accountObj.Name + " has never been set!")
    } else {
    $maxPasswordAgeTimeSpan = $null
    $dfl = (get-addomain).DomainMode
    if ($dfl -ge 3) {
    ## Greater than Windows2008 domain functional level
    $accountFGPP = Get-ADUserResultantPasswordPolicy $accountObj
    if ($accountFGPP -ne $null) {
    $maxPasswordAgeTimeSpan = $accountFGPP.MaxPasswordAge
    } else {
    $maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
    }
    } else {
    $maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
    }
    if ($maxPasswordAgeTimeSpan -eq $null -or $maxPasswordAgeTimeSpan.TotalMilliseconds -eq 0) {
    echo ("MaxPasswordAge is not set for the domain or is set to zero!")
    } else {
    echo ("Password of account: " + $accountObj.Name + " expires on: " + ($passwordSetDate + $maxPasswordAgeTimeSpan))
    }
    }
    }
    }
    }
    }

    Zdroj: http://blogs.msdn.com/b/adpowershell/archive/2010/02/26/find-out-when-your-password-expires.aspx

    29. listopadu 2011 10:07
    Moderátor
  • 2 Jan Chloupek: Nastavoval jsem v Default Domain Policy - ta je propojena (defaultně a já to neměnil) s celou doménou. Mám cílem je dosáhnout toho pro celou doménu, žádný OU nebo jiný členění. Nastavoval jsem to v Konfigurace počítače - zásady - Nastavení systému Windows - Nastavení zabezpečení - Zásady účtů - Zásada hesel. O nějakých zásadách hesla v nastavení uživatele nemám ponětí.

    2 Jiří Janata: Nastavit u každého uživatele, že heslo nevyprší umím, ale nechápu, k čemu pak je to v tom GPO?? Rád bych to nastavit i pro nové uživatele a ne jen pro aktuální stav - pak to budu mít u některých uživatelů nastaveno a u některých ne a vzniká zmatek. Nehledě na to, že některé OU by mohl v budoucnu spravovat někdo jinej, takže to vnáší další nepořádek.

    Jinak se omlouvám, že jsem neuvedl - server je win 2008 R2 Standard a úroveň funkčnosti domény je taktéž 2008 R2.

    Na ty fine-grained policy se podívám, ten termín mi opravdu nic neříká, tak možná to celou situaci objasní.

    Jen abych vypíchl původní problém (který zatím stále trvá): ať do default domain policy nastavím k politikám hesla cokoliv (minimální délka hesla, historie hesel, maximální stáří hesla), tak to nemá na nic vliv, skutečné parametry se berou z atributů domény (minPwdLenght, ...PwdHistory, maxPwdAge) - pokud změním ty, tak to funguje, a dokonce se to nastavení zkopíruje do Default domain policy. Ale naopak ne, a to je mi divný:(

    PS: Vynucená změna hesla je fajn věc, ale v naší až možná příliš demokratické firmě není na nasazení aktuálně vhodná doba:(

    Díky všem.

    r

    29. listopadu 2011 12:09
  • 2 Miloš Puchta: tak ten skript mi vypíše The term 'Get-ADUser' is not recognized as the name of a cmdlet - tak to nevím, budu to ještě hledat, kde bude problém, asi s nějakou verzí powershellu nebo .net, nevím.

    Každopádně je to tak, jak jsem psal v předchozím, příklad:

    v GPO Default domain policy nastavím toto a v GPO editoru si to zobrazím (takže to tam fakt je nastavený) a zkopíruju to sem:

    Heslo musí splňovat požadavky na složitost Zakázáno
    Maximální stáří hesla 0 dní
    Minimální délka hesla 6 znaků
    Minimální stáří hesla 0 dní
    Ukládat hesla pomocí reverzibilního šifrování Zakázáno
    Vynutit použití historie hesel 0 hesel zapamatováno

    v atributech domény:

    maxPwdAge: 100:00:00:00
    minPwdLength: 1
    minPwdAge: 1:00:00:00
    pwdHistoryLength: 24

    Heslo musí splňovat požadavky na složitost a Ukládat hesla pomocí reverzibilního šifrování nevím, jak se v atributech jmenují, ale pro představu to snad stačí. Zavřu okno, ještě jednou obnovím GPO editor a mrknu na hodnoty a jsou tam stále ty, které jsem v GPO nastavoval. Dám na serveru gpupdate /force. Chce mě to odhlásit, tak se odhlásím a přihlásím znovu. Zapnu doménové pc, přihlásím se tam na lokálního administrátora, dám na něm gpupdate /force, na žádost pc nechám resetovat.

    ještě jednou kouknu na GPO editor a na atributy domény - stále tam jsou ty hodnoty, které jsem uváděl.

    Přihlásím se na to doménové pc na doménový účet. Jelikož jsem změnil ten atribut domény na 100dní (jinak by dnes všechna hesla vypršely), tak to teďka se změnou hesla neprudí. Zkusím tam rsop.msc a vidím tam hodnoty nastavené v GPO (tedy např. délka hesla 6 znaků) - takže to vypadá všechno ok. Dám na tom doménovém pc ctrl+alt+delete - změnit heslo - nechám nové heslo prázdné a napíše i to, že heslo musí obsahovat minimálně 1 znaků, žádné z předchozích 24 hesel a stáří minimálně 1 dní - tedy ignorace GPO a vezme to ty hodnoty z atributů domény.

    Takže nevím, co tím GPO vlastně nastavím, když se ty změny neprojeví, a proč tam jsou nastaveny nějaké atributy domény.

    Sorry za popis jak pro blbý, ale chci předejít dotazům typu jestli sem zkoušel gpupdate atd..

    Díky za Váš čas

    Rob

    29. listopadu 2011 12:56
  • 1. Musite mit natazeny Powershelovy modul pro AD. Najdete ho v administrativnich nastrojich na DC.

    http://technet.microsoft.com/en-us/library/ee617241.aspx

    2. Divejte se na to, jako my, kteri vam na monitor nevidi, system neznaji a snazi se hledat jehlu v kupce sena. My take chapeme, ze vas zezadu mlati uzivatele holi, i kdyz se povazuji za demokraty a humanisty.

    M.

    29. listopadu 2011 13:26
    Moderátor
  • 1) aha, díky za info. Skript píše Password of account: Rob xxxxx expires on: 01/27/2012 20:08:01 - což odpovídá podle informace o založení účtu na těch 100 dnů, tedy to vezme stejně jako ten klientský systém informaci z atributů domény a ne z GPO..

    2) já tomu rozumím, proto se snažím polopaticky napsat co nejvíce informací..

    r

    29. listopadu 2011 14:08
  • Co jsem tak zkoumal a hledal, tak se domnívám, že jde o konflikt úrovní toho, kde je co nastavené. Prostě nastavení v doméně má vyšší prioritu. Ty si můžeš udělat zásady, kterým nastavíš atribut vynucené a pak by mělo dojít k tomu požadovanému efektu. 

     

    Pořadí zpracování

    http://technet.microsoft.com/cs-cz/library/cc785665(WS.10).aspx
    

    4. prosince 2011 23:55