Не все, конечно, и далеко не по самой злободневной проблеме, но все-таки это не может не радовать. В общем, с самого появления Outlook Web Access в Exchange 2000, админов и пользователей преследовала существенная проблема: если у пользователя в свойствах стоит галочка User must change password at next logon, то пользователь не может войти в OWA, ну и не может этот самый пароль сменить. Аналогичным образом пароль нельзя сменить и после того, как он устарел (стал expired). А для тех пользователей, которые в сеть входят только через OWA, это все становится очень большой проблемой. В итоге приходится нарушать стандарты безопасности: пароли пользователям меняет админ, а значит он не только знает пароли, но и сами пароли передаются по незащищенным каналам связи.
Причина такого поведения в принципе понятна и очевидна: в обоих случаях дата устаревания пароля меньше текущей, а значит пароль не может использоваться для входа в систему. Но почему в таких случаях Windows все-таки предлагает войти и сменить пароль, а OWA категорически упирается и отказывается это делать? Проблема в том, что при работе с AD через ADSI невозможно получить детальную информацию об ошибке, код ошибки всегда “неверное имя пользователя или пароль”, что не позволяет выделять ситуацию с устаревшими паролями. При работе с AD через LDAP все нормально, коды ошибок адекватно различаются и с ними можно работать.
В общем, в Exchange 2010 SP1 и Exchange 2007 SP3 при условии их работы под Windows 2008 проблему наконец-то решили и в OWA теперь можно входить с просроченными паролями, причем он сам предложит его поменять в стандартной для Windows форме. Для этого всего-навсего нужно на сервере с ролью Client Access влезть в реестр в ключ HKLM\SYSTEM\CurrentControlSet\Services\MSExchange OWA, создать там параметр типа DWORD с именем ChangeExpiredPasswordEnabled и установить его значение равным 1. После этой процедуры нужно перезапустить IIS (рекомендуется использовать команду iisreset /noforce).
Остается единственная проблема: в окошко смены пароля логин должен вводится в формате Домен\Логин, вариант Логин@Домен не котируется.