Ucl Password Expired

5 views
Skip to first unread message

Nickie Koskinen

unread,
Jul 25, 2024, 11:19:17 PM7/25/24
to althiacresti

That is because the cmdlet itself does not create in internal object[property] for PasswordExpired. $_.PasswordExpired is a method, not a static property so it has to be called when its filled. Because of the (slow) speed of big queries (with that number of properties), the -Filter was implemented to reduce the output-calls, not the same way as the object[property] pipeline.

Seems like a glitch in the cmdLet. There is no direct attribute to indicate the expired state of the password. So while it seems like a simple question, there are several moving pieces to determine the state. Each account does have a property of the date the password was last changed. You can run your own query that will be more efficient and not put so much load on your LDAP servers.

Another thing I wanted to share and maybe the most important thing I want to say is that I tried to login to my account after a long time (you know why ), and my password expired. Normally you can reset it with an email that they send to your email like this

One of my accounts on Panorama standby doesn't let me login. I get "Password expired" message. I tired to change password for active unit and that still did not fix issue. I tired to delete and recreate account from active unit that still did not fix issue. How can I clear this flag on standby unit without making it active and changing password on it.

I'm not sure what you mean by 'flipping to standby', you should not change the active membership status of a cluster member to execute this type of action. Commands can be executed on the passive member without it needing to be active

On Standby Panorama you are not aloud to make changes to shared configuration. IE User accounts. I have a user with expired password on Standby unit but on active unit its fine. I can flip to standby unit triger a password change then flip back this will fix the issue but not the correct way it should be done.

I recently discovered that some users with expired AD passwords are still working as if nothing has changed, which caught me by surprise. All the users affected do not use the VPN on a regular basis, or sign into Office 365. They all use desktop office for their email (Outlook) and chats (Teams). We are all still working from home.

It appears as if a user is only challenged to update their expired password once they physically authenticate against the domain controller(s). But what if they never do? This means a user with an expired password will continue to send/receive emails and send chats in Teams regardless of when their password expired, unless they perform some form of "logon".

Is this by design? In that the password expiration attribute is pointless until said account actively connects or authenticates to the domain? Why is the "expiration" attribute not part of the user SID? I'm baffled.

So this is indeed by design but it makes no sense to me, why make this the default behaviour? I see no rationale being given. It's almost like having a car with no engine, like what is the point? I'm upset with myself for assuming the contrary but happy to now be in the know, thanks again.

I did see the Note reading "The Set-MsolPasswordPolicy PowerShell command will not work on federated domains." so that will be my next hurdle to jump over before attempting to change this horrid default setting.

Resetting the password will only solve the problem temporarily. From MySQL 5.7.4 to 5.7.10 (to encourage better security - see MySQL: Password Expiration Policy) the default default_password_lifetime variable value is 360 (1 year-ish). For those versions, if you make no changes to this variable (or to individual user accounts) all passwords expire after 360 days.

As pointed out by Mertaydin in the comments, to make this permanent add the following line to a my.cnf file MySQL reads on startup, under the [mysqld] group of settings. The location of my.cnf depends on your setup (e.g. Windows, or Homebrew on OS X, or an installer), and whether you want this per-user on Unix or global:

Not sure if enabled by default or not (as the Exchange that I manage was inherited from another employee and was originally setup by a different MSP), but if not, this should be able to get you going in the right direction:

As a sys admin you are on call 24/7 or at least most of us are. If a user needs something done so they can do their job then yes do what needs to be done. Or at least contact the user and find out if it can wait until Monday.

SanJuan, by the way, I completely agree with you, and would enjoy pointing out that I did help this user right away. Well, not the second I received the text, because my wife and I were out walking our dog, but still. On call, all the time.

To mitigate the amount of password changes you do on a weekend, you can give users the tools they need to change their password (with or without it being expired), and notifying them of when it will be expired.

Training (or a published self-help document on help desk portal or something) on how to change their password before expiration. Believe it or not, most users do not know how to change a password without the computer telling them to.

I am currently working on a Powershell GUI script to help my team easier find accounts with expired passwords, disabled accounts etc and to output these to a CSV. It revolves almost entirely around the "Get-ADUser" command. So far almost everything has worked, bar finding accounts with expired passwords.

I've researched this a lot already but there seems to be no easy way of finding expired accounts using Get-ADUser. I know I can use Search-ADAccount instead but it would be very awkward to do so (as I would need to re-write a lot of code).

to a variable and then substitute it into the command I either get an error, a list of all those in my AD or nobody at all. The rational for substituting in a variable is to allow for the possible account statuses (that the user can choose from by selecting a radio button).

The Get-ADUser cmdlet exposes the PasswordExpired extended property, which is a boolean indicating if the password is expired. It is based on the msDS-User-Account-Control-Computed attribute. However, you cannot filter with this property.

Does anyone know what such password is actually used for?
And is there is any hidden problem to the fact I have now changed in? This is critical because I need to also change it in production and I am nervous about that.:uhoh:

For instance, wM wants to connect to a database. wM needs therefore to send the username and password to this database, and the database then checks them against its list of users and once authentication is completed, it allows wM to run the query.

wM Documentation says that as wM is sending these username and password, it protects them using the Master Password. I cannot see how that can be possible. If wM sends a string to the database that was encrypted using the Master password, the DB server must be able to decrypt the message before reading it and doing the authentication steps. How could the DB decrypt the message when it is not even aware of what the Master password is?

While sending password/key to target system wM wont send in its own encrypted form. The service which uses these passwords must retrieve from the password store. There are some built-in services available for this in pub.security.outboundPasswords.

Further these passwords can be classified as internal/external and can be more secured using extended properties in admin page.
These are very useful in securing passwords for external connections as well as securing the PrivateKey, Certificate Chain used for digital signatures etc.

The thing making it tough to troubleshoot is that one of our admins WAS able to add themselves as a user with a spare email. (I tried to add an extra email - I was not able to log in with it, I got the same 'expired link' message.)

Another confounding element, is that we have a separate metabase installation, same version, and as far as we know everything else the same, but we are able to add users and password reset users on this just fine.

@jazz78 The password reset is valid for 48 hours. Something makes me think that you have a timezone or system clock issue somewhere. Check the time of servers running Metabase and MySQL, and make sure that they have updated OS tz_data.
Since the problem only occurs on a single instance, then the problem is specific to that instance.

@flamber we will try this - it is plausible, the four users we are testing the issue with are are all in substantially different time zones - although the one person who did not get the 'expired' message is in between two who could not, so that does not fit with the theory, but maybe there is some other explanation for that.

It is resolved, it was an error on the site URL setup . Either when we upgraded, or when we moved off H2 this particular installation URL got messed up. It also cannot be ruled out that one of the admins on this site edited the URL by hand, I don't believe I did or any of the other admins did, but we cannot rule it out.

I have just checked all of your tenants under your subscription account and found that none of them have the Force a password reset after X days Action deployed and bound to the Post-Login Action flow.

I did have Password Retention as part of our flow, but because we use the tenant for our test servers I had to take it out as it prevented any user with an expired password from authenticating and would get caught in that loop described above.

You will need to adjust your authorization parameters for your login call to include 'prompt=login`. This will depend on the SDK you are using. Note that this will always force your users to re-authenticate.

I am using username/password via a database for logging in and not an IDP. I set the timeouts for my tokens to be very short and removed them from the browser cache then waited longer than needed for everything to expire and the endless loop still occurs.

Reply all
Reply to author
Forward
0 new messages