Difference between WD_User and WD_UserEx
We had a request come through that shows no requestor information. When the request is selected under the "User Information" section it states "Primary user data not available." I looked through the Request Logs and found the UniqueUserName for the user. If i search for them in Support Tools and Imported Users and Computers I cannot find them. I also cannot find them in the WD_User table, but they do exist in the WD_UserEx table. I can see their username, ADGUID, Collection Memberships, and Security Group memberships; however, full name, email, and domain are all empty.
What is the difference between the two tables and is there certain data that is required for a user to make it from the WD_UserEx table to the WD_User table?
Adding to the OP - I checked SCCM and AD and this user exists and has all fields properly filled out there. We have a custom user query that is filtering out users based on the User Account Control type. This user has a value other than the one we are importing so the custom user sync is not importing him; however, our custom user computer mapping query found him mapped to 2 computers as the primary user in SCCM. I'm guessing this is how his account made it into the WD_UserEx table.
I would still like to confirm the behavior and differences between the two tables even though I believe I discovered how he got there.
WD_User contains user data that is synced from Config Mgr as part of the nightly data sync.. WD_UserEx is data that gets serialized from the session data when the user accesses the site. WD_UserEx contains additional data about the user such as group membership, collection membership etc.. If you look at the .XML, you should see something similar to the following, which would typically indicate when the record was written:
If I had to guess, I'd say that the user may have been cleaned up from wd_user at some point, but the record in WD_userEx remained.
Unfortunately, I'm not well versed in when data from WD_UserEx is used vs just the session data, so I can't provide as many details as I would like. Also, I think that there are times when WD_UserEx gets written to, even if the user does not hit the ESD Site directly (for example, through an API).. Honestly, I have seldom looked at the table, as I'm not aware of any issues which are related to WD_UserEx, so I focus my attention elsewhere.
Like Charlie, I was wondering if this was perhaps a user that was in WD_User at one point and later deleted (perhaps to fix license counts?). This is the exact behavior you would see in that situation.
If you simply change the query, then that will not remove users.. Typically, after you change to a custom query, support will usually suggest purging the wd_user table so that the data correctly reflects the results from the new query.. Perhaps this could explain it?