2011-02-01 4 views
5

Non importa quello che sto cercando di buttare a questo, questo metodo qui provoca sempre la seguente eccezione:L'invocazione ChangePassword con l'oggetto DirectoryEntry

  var retVal = this.DirectoryEntry.Invoke("ChangePassword", new object[] { oldPassword, newPassword }) == null; 

InnerException = { "La password non soddisfa il criterio di password Verificare la lunghezza minima della password, la complessità della password e i requisiti della cronologia delle password (eccezione da HRESULT: 0x800708C5) "}

Ho controllato in modo naturale la politica di default del dominio (nessuna trovata nel mio dominio di test), il criterio Gruppo OU (nessuno esiste) e non riesce a trovare nulla che possa governare la politica della password, ma non importa quanto lungo o complesso sia il passw ord I fornitura nella funzione è, si traduce nella stessa eccezione. Ora la parte più interessante è quando faccio lo stesso (per lo stesso oggetto DirectoryEntity e la stessa password) chiamando questo:

var retVal = this.DirectoryEntry.Invoke("SetPassword", new object[] { newPassword }) == null; 

L'ultima chiamata riesce w/o eventuali problemi.

risposta

7

Ci sono una serie di criteri di gruppo andando a influenzare la complessità della password. Molti di questi sono attivi per impostazione predefinita dopo aver installato Active Directory. Se non li hai mai toccati dopo aver impostato il dominio di test, molto probabilmente, tali criteri di password sono ancora presenti.

Ecco come sono le impostazioni di sicurezza del dominio predefinito del dominio di prova. Se non lo hai cambiato prima, dovrebbe apparire simile.

Default Domain Security Settings

È possibile trovare descrizioni dettagliate su ciascuna delle politiche in materia di MSDN. Includerò solo un riepilogo e un link qui.

Tutte le impostazioni di cui sopra possono essere la causa del vostro errore 0x800708C5. In particolare, penso che sia la politica della password "età minima della password" a causare problemi. Di default è impostato su 1 giorno. Se il tuo account di prova è un nuovo account utente creato proprio ora, non puoi cambiare la tua password nello stesso giorno.

Così ora, si potrebbe pensare che nel proprio ambiente di test, si debbano disabilitare tutte queste politiche password a scopo di sviluppo. Non suggerirò semplicemente di rendere tutte le politiche indefinite deselezionando la casella nelle pagine delle proprietà.Consiglierei i seguenti settaggi.

Un ultimo passaggio che è necessario completare nuovamente il criterio di gruppo sulla macchina. Ricordare che il criterio di gruppo è le impostazioni memorizzate in Active Directory. I criteri del gruppo di macchine vengono applicati al momento dell'avvio del computer mentre i criteri del gruppo di utenti vengono applicati al momento dell'accesso utente. Le politiche relative alle password sono una di quelle politiche della macchina. Quindi, è possibile riavviare il computer ora oppure andare al prompt dei comandi ed eseguire gpupdate.

Spero di non aver perso nessuna informazione importante. Fammi sapere se non funziona ancora :)

+0

grazie, eseguirò più test e lo saprai presto. – dexter

Problemi correlati