Purpose of the STATE key located in user's profiles?

M

Mike S

There is a state key associated with every user's registry entry found here:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\[user's
SID]\State

Does anyone know what the values of that state key mean? I'm trying to
find a way to know if a user is getting logged in with a temporary
profile and I'm hoping that key will have the answers.

I've been searching and searching and I can't seem to find any
information on the different values. I'm guessing that it contains
information on whether the profile is roaming, mandatory, temporary,
etc. Any help would be appreciated!

thanks,
mike
 
M

Mark V

In said:
There is a state key associated with every user's registry entry
found here:

HKLM\Software\Microsoft\Windows
NT\CurrentVersion\ProfileList\[user's SID]\State

Does anyone know what the values of that state key mean? I'm
trying to find a way to know if a user is getting logged in with
a temporary profile and I'm hoping that key will have the
answers.

I think that the
System Properties, User Profiles
listing may be useful for profile-type.
I've been searching and searching and I can't seem to find any
information on the different values. I'm guessing that it
contains information on whether the profile is roaming,
mandatory, temporary, etc. Any help would be appreciated!

Sorry, I know of no documentation but seem to recall (very foggy
now)
256=Local
100=Mandatory
....BICBW.
 
M

Mike S

Mark said:
I think that the
System Properties, User Profiles
listing may be useful for profile-type.

I forgot to mention, I'm trying to find a way to do this
programmatically in a logon script, otherwise yeah, that would probably
work.
Sorry, I know of no documentation but seem to recall (very foggy
now)
256=Local
100=Mandatory
...BICBW.

Yeah, that's the same stuff I've found.

I just put in a help request to MS so we'll see what they tell us.

thanks!
mike
 
M

Mike S

Hey Mark,
I got this from a MS technician:

The State information for each profile is stored in the following location:

Key: HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\SID

Value: State

DataType: REG_DWORD

Data:

A value of 256 in the State would be decoded in this manner:
256 = 200 + 040 + 010 + 002 + 004

You can math the numbers with the following terms to determine the flag
settings on the profile:

001 = PROFILE_MANDATORY
Profile is mandatory.

002 = PROFILE_USE_CACHE
Update locally Cached profile.

004 = PROFILE_NEW_LOCAL
Using a new local profile.

008 = PROFILE_NEW_CENTRAL
Using a new central profile.

010 = PROFILE_UPDATE_CENTRAL
Need to update central profile.

020 = PROFILE_DELETE_CACHE
Need to delete cached profile.

040 = PROFILE_UPGRADE
Need to upgrade profile.

080 = PROFILE_GUEST_USER
Using guest user profile.

100 = PROFILE_ADMIN_USER
Using administrator profile.

200 = DEFAULT_NET_READY
Default net profile is available & ready.

400 = PROFILE_SLOW_LINK
Identified slow network link.

800 = PROFILE_TEMP_ASSIGNED
Temporary profile loaded.

Unfortunately, this does not answer how I could have gotten a value of
33028. Any ideas?!

thanks,
Mike
 
M

Mark V

In said:
Mike said:
Mark said:
Does anyone know what the values of that state key mean? I'm
trying to find a way to know if a user is getting logged in
with a temporary profile and I'm hoping that key will have
the answers.
[ ]
I forgot to mention, I'm trying to find a way to do this
programmatically in a logon script, otherwise yeah, that would
probably work.
Sorry, I know of no documentation but seem to recall (very
foggy now) 256=Local
100=Mandatory
...BICBW.

Yeah, that's the same stuff I've found.

I just put in a help request to MS so we'll see what they tell
us.
Hey Mark,
I got this from a MS technician:

The State information for each profile is stored in the
following location:

Key: HKLM\Software\Microsoft\Windows
NT\CurrentVersion\ProfileList\SID

Value: State

DataType: REG_DWORD

Data:

A value of 256 in the State would be decoded in this manner:
256 = 200 + 040 + 010 + 002 + 004
Hex.

You can math the numbers with the following terms to determine
the flag settings on the profile:

001 = PROFILE_MANDATORY
Profile is mandatory.

002 = PROFILE_USE_CACHE
Update locally Cached profile.

004 = PROFILE_NEW_LOCAL
Using a new local profile.

008 = PROFILE_NEW_CENTRAL
Using a new central profile.

010 = PROFILE_UPDATE_CENTRAL
Need to update central profile.

020 = PROFILE_DELETE_CACHE
Need to delete cached profile.

040 = PROFILE_UPGRADE
Need to upgrade profile.

080 = PROFILE_GUEST_USER
Using guest user profile.

100 = PROFILE_ADMIN_USER
Using administrator profile.

200 = DEFAULT_NET_READY
Default net profile is available & ready.

400 = PROFILE_SLOW_LINK
Identified slow network link.

800 = PROFILE_TEMP_ASSIGNED
Temporary profile loaded.

Unfortunately, this does not answer how I could have gotten a
value of 33028. Any ideas?!

No clue at all! But thanks for the research and follow-up post
here. I'll point someone to here that maintains a central listing
for possible inclusion there. If accepted I will provide the link
or reference.

Did you ask the MS Tech about that "33028" data? "Dunno" might
have been the response perhaps. I also wonder if this has remained
static and unchanged in all versions of NTx to date. The big
question is can you replicate the conditions that created that
value. IOW, valid but undocumented vs. an actual bad value/error?
What OS version there?

All of my active local admin accounts here on W2K are "256"dec
(eg 0x00000100) which matches up with 100h = "PROFILE_ADMIN_USER"
One User (local and non-mandatory) account shows a zero value for
"State".
I will ask in another group for example data...
 
J

Jerold Schulman

Hey Mark,
I got this from a MS technician:

The State information for each profile is stored in the following location:

Key: HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\SID

Value: State

DataType: REG_DWORD

Data:

A value of 256 in the State would be decoded in this manner:
256 = 200 + 040 + 010 + 002 + 004

You can math the numbers with the following terms to determine the flag
settings on the profile:

001 = PROFILE_MANDATORY
Profile is mandatory.

002 = PROFILE_USE_CACHE
Update locally Cached profile.

004 = PROFILE_NEW_LOCAL
Using a new local profile.

008 = PROFILE_NEW_CENTRAL
Using a new central profile.

010 = PROFILE_UPDATE_CENTRAL
Need to update central profile.

020 = PROFILE_DELETE_CACHE
Need to delete cached profile.

040 = PROFILE_UPGRADE
Need to upgrade profile.

080 = PROFILE_GUEST_USER
Using guest user profile.

100 = PROFILE_ADMIN_USER
Using administrator profile.

200 = DEFAULT_NET_READY
Default net profile is available & ready.

400 = PROFILE_SLOW_LINK
Identified slow network link.

800 = PROFILE_TEMP_ASSIGNED
Temporary profile loaded.

Unfortunately, this does not answer how I could have gotten a value of
33028. Any ideas?!

thanks,
Mike

33028 is hex 8104h.
If you ignore the 8000h bit, this is a new local administrator.
How was it created? I expect the create process set the 8000h bit

Jerold Schulman
Windows Server MVP
JSI, Inc.
http://www.jsiinc.com
http://www.jsifaq.com
 
M

Mike S

Jerold said:
33028 is hex 8104h.
If you ignore the 8000h bit, this is a new local administrator.
How was it created? I expect the create process set the 8000h bit

Hey Jerold,
Just so you know, the reason I am asking this information is because I
want to know when a user gets logged in with a temporary profile. I am
NOT trying to figure out why the user got logged in with a temp profile
(I already know why), I just want to be able to detect if it happens
mitigate the situation gracefully.

So, I just logged in with an account that got loaded into a temp profile
(Lotus Notes decided it wanted to hold the ntuser.dat file open, if
you're curious). My SID is the following:

S-1-5-21-1534095646-1438609452-5522801-16269

In the registry, I have the following values under this key:

....\ProfileList\S-1-5-21-1534095646-1438609452-5522801-16269

- State: 19204 (decimal)
- ProfilePath: %SystemDrive%\Documents and Settings\TEMP

It seems that Windows also makes a backup of my original profile before
logging me in with the above path:

....\ProfileList\S-1-5-21-1534095646-1438609452-5522801-16269.bak\

- State: 33024 (decimal)
- ProfilePath: %SystemDrive%\Documents and Settings\msoultanian


So, that is where I am getting these values. My goal here is for my
VBScript to be able to read in the State value, interpret the value so I
can accurately know whether or not the user is logged in with a
temporary profile, and then act accordingly. I could just test to see
if it's above 19000, but I really don't like doing that because it seems
clumsy.

I haven't figured out how these values should match up with the values I
got from the Microsoft technician so that's where I'm hoping someone
will be able to help out.

Just for the sake of information, here are some other state values that
I've found assigned to users and their associated binary and hex values:

1000000100000100 - 33028 (8104h) - temporary user backup
1000000100000000 - 33024 (8100h) - also from a temporary user backup
100101100000100 - 19204 (4B04) - temporary account
1100000100 - 772 (304h) - not sure
100000000 - 256 (100h) - seems like normal status

So, any thoughts? I really appreciate your help as I have been trying
to figure this out for a very looooooong time!

Thanks,
Mike

programmatically in a logon script, otherwise yeah, that would probably
work.
 
M

Mike S

Mark said:
In said:
Mike said:
Mark V wrote:
Does anyone know what the values of that state key mean? I'm
trying to find a way to know if a user is getting logged in
with a temporary profile and I'm hoping that key will have
the answers. [ ]
I forgot to mention, I'm trying to find a way to do this
programmatically in a logon script, otherwise yeah, that would
probably work.

Sorry, I know of no documentation but seem to recall (very
foggy now) 256=Local
100=Mandatory
...BICBW.
Yeah, that's the same stuff I've found.

I just put in a help request to MS so we'll see what they tell
us.
Hey Mark,
I got this from a MS technician:

The State information for each profile is stored in the
following location:

Key: HKLM\Software\Microsoft\Windows
NT\CurrentVersion\ProfileList\SID

Value: State

DataType: REG_DWORD

Data:

A value of 256 in the State would be decoded in this manner:
256 = 200 + 040 + 010 + 002 + 004
Hex.

You can math the numbers with the following terms to determine
the flag settings on the profile:

001 = PROFILE_MANDATORY
Profile is mandatory.

002 = PROFILE_USE_CACHE
Update locally Cached profile.

004 = PROFILE_NEW_LOCAL
Using a new local profile.

008 = PROFILE_NEW_CENTRAL
Using a new central profile.

010 = PROFILE_UPDATE_CENTRAL
Need to update central profile.

020 = PROFILE_DELETE_CACHE
Need to delete cached profile.

040 = PROFILE_UPGRADE
Need to upgrade profile.

080 = PROFILE_GUEST_USER
Using guest user profile.

100 = PROFILE_ADMIN_USER
Using administrator profile.

200 = DEFAULT_NET_READY
Default net profile is available & ready.

400 = PROFILE_SLOW_LINK
Identified slow network link.

800 = PROFILE_TEMP_ASSIGNED
Temporary profile loaded.

Unfortunately, this does not answer how I could have gotten a
value of 33028. Any ideas?!

No clue at all! But thanks for the research and follow-up post
here. I'll point someone to here that maintains a central listing
for possible inclusion there. If accepted I will provide the link
or reference.

Did you ask the MS Tech about that "33028" data? "Dunno" might
have been the response perhaps. I also wonder if this has remained
static and unchanged in all versions of NTx to date. The big
question is can you replicate the conditions that created that
value. IOW, valid but undocumented vs. an actual bad value/error?
What OS version there?

All of my active local admin accounts here on W2K are "256"dec
(eg 0x00000100) which matches up with 100h = "PROFILE_ADMIN_USER"
One User (local and non-mandatory) account shows a zero value for
"State".
I will ask in another group for example data...

Hey Mark,
When I was talking to the tech, they kept wanting to know why a
temporary profile was getting loaded and I kept trying to tell them that
that wasn't my issue. I know why it's happening (Lotus Notes, among
other programs, sometimes holds it open) and I want to be able to detect
that error state. I am also doing some other profile things that tend
to lock it up as well, so I just need to be able to mitigate those
situations and handle them gracefully. Anyways, I finally got to
someone on the AD development team and she found that internal listing
of State values and sent it to me. I didn't really get to ask about the
33028 because she barely understood the question, and I was SOOO happy
to get that State data that I told her I'd look into it and see if it
solved my problem instead of confusing her any more ;)

I can easily replicate the problem and this is happening on an XP Pro
box. However, I believe that it will happen on other NTx flavors of
Windows as well, and I'd venture to guess that those State values are
the same for the different OSes.

Lemme know if you hear anything from your other groups. Also, you might
want to take a look at my reply to Jerold as it might be helpful. I'm
pretty excited that I got this information from MS so far and this might
open up some pretty nifty opportunities to understand what's going on
internally with user profiles!

Thanks,
Mike
 
J

Jerold Schulman

In-Line

Hey Jerold,
Just so you know, the reason I am asking this information is because I
want to know when a user gets logged in with a temporary profile. I am
NOT trying to figure out why the user got logged in with a temp profile
(I already know why), I just want to be able to detect if it happens
mitigate the situation gracefully.

So, I just logged in with an account that got loaded into a temp profile
(Lotus Notes decided it wanted to hold the ntuser.dat file open, if
you're curious). My SID is the following:

S-1-5-21-1534095646-1438609452-5522801-16269

In the registry, I have the following values under this key:

...\ProfileList\S-1-5-21-1534095646-1438609452-5522801-16269

- State: 19204 (decimal)
- ProfilePath: %SystemDrive%\Documents and Settings\TEMP

19204 is hex 4b04 or
0010101100000100 or

004 = PROFILE_NEW_LOCAL
100 = PROFILE_ADMIN_USER
200 = DEFAULT_NET_READY
800 = PROFILE_TEMP_ASSIGNED


It seems that Windows also makes a backup of my original profile before
logging me in with the above path:

...\ProfileList\S-1-5-21-1534095646-1438609452-5522801-16269.bak\

- State: 33024 (decimal)
- ProfilePath: %SystemDrive%\Documents and Settings\msoultanian

This is hex 8100 or
1000000100000000 or

100 = PROFILE_ADMIN_USER

See tip 8968 » How can I convert a hexadecimal number to decimal, or a decimal number to hexadecimal, in a batch?
in the 'Tips & Tricks' at http://www.jsifaq.com

The perform the test in batch, assume %State% contains the state:

call hexec %State% hex
set /a ans="%hex%&0x800"
if %ans% EQU 2048 goto Temp_Profile

If you don't want to use a 3rd party routine:

set /a ans1=%State% / 2048
set /a ans2=%State%%%2048
set /a ans3=(%ans1% * 2048) + %ans2%
set /a ans="%ans3%&0x800"
if %ans% EQU 2048 goto Temp_Profile



So, that is where I am getting these values. My goal here is for my
VBScript to be able to read in the State value, interpret the value so I
can accurately know whether or not the user is logged in with a
temporary profile, and then act accordingly. I could just test to see
if it's above 19000, but I really don't like doing that because it seems
clumsy.

I haven't figured out how these values should match up with the values I
got from the Microsoft technician so that's where I'm hoping someone
will be able to help out.

Just for the sake of information, here are some other state values that
I've found assigned to users and their associated binary and hex values:

1000000100000100 - 33028 (8104h) - temporary user backup
1000000100000000 - 33024 (8100h) - also from a temporary user backup
100101100000100 - 19204 (4B04) - temporary account
1100000100 - 772 (304h) - not sure
100000000 - 256 (100h) - seems like normal status

So, any thoughts? I really appreciate your help as I have been trying
to figure this out for a very looooooong time!

Thanks,
Mike


programmatically in a logon script, otherwise yeah, that would probably
work.

Jerold Schulman
Windows Server MVP
JSI, Inc.
http://www.jsiinc.com
http://www.jsifaq.com
 
J

Jerold Schulman

I am having a bad day.

All that is needed is:

set /a ans="%state%&0x800"
if %ans% EQU 2048 goto Temp_Profile



Hey Jerold,
Just so you know, the reason I am asking this information is because I
want to know when a user gets logged in with a temporary profile. I am
NOT trying to figure out why the user got logged in with a temp profile
(I already know why), I just want to be able to detect if it happens
mitigate the situation gracefully.

So, I just logged in with an account that got loaded into a temp profile
(Lotus Notes decided it wanted to hold the ntuser.dat file open, if
you're curious). My SID is the following:

S-1-5-21-1534095646-1438609452-5522801-16269

In the registry, I have the following values under this key:

...\ProfileList\S-1-5-21-1534095646-1438609452-5522801-16269

- State: 19204 (decimal)
- ProfilePath: %SystemDrive%\Documents and Settings\TEMP

It seems that Windows also makes a backup of my original profile before
logging me in with the above path:

...\ProfileList\S-1-5-21-1534095646-1438609452-5522801-16269.bak\

- State: 33024 (decimal)
- ProfilePath: %SystemDrive%\Documents and Settings\msoultanian


So, that is where I am getting these values. My goal here is for my
VBScript to be able to read in the State value, interpret the value so I
can accurately know whether or not the user is logged in with a
temporary profile, and then act accordingly. I could just test to see
if it's above 19000, but I really don't like doing that because it seems
clumsy.

I haven't figured out how these values should match up with the values I
got from the Microsoft technician so that's where I'm hoping someone
will be able to help out.

Just for the sake of information, here are some other state values that
I've found assigned to users and their associated binary and hex values:

1000000100000100 - 33028 (8104h) - temporary user backup
1000000100000000 - 33024 (8100h) - also from a temporary user backup
100101100000100 - 19204 (4B04) - temporary account
1100000100 - 772 (304h) - not sure
100000000 - 256 (100h) - seems like normal status

So, any thoughts? I really appreciate your help as I have been trying
to figure this out for a very looooooong time!

Thanks,
Mike


programmatically in a logon script, otherwise yeah, that would probably
work.

Jerold Schulman
Windows Server MVP
JSI, Inc.
http://www.jsiinc.com
http://www.jsifaq.com
 
M

Mike S

Jerold said:
19204 is hex 4b04 or
0010101100000100 or

004 = PROFILE_NEW_LOCAL
100 = PROFILE_ADMIN_USER
200 = DEFAULT_NET_READY
800 = PROFILE_TEMP_ASSIGNED


Ok, I understand that. What you're doing is taking 4b04h and extracting
the 800h bit

0010101100000100 - 19204 (4b04h)
--------------------------------
0010000000000000 - 8192 (2000h)
0000100000000000 - 2048 (800h)

Ok, that makes sense, but what about the 2000h bit? Why are you
choosing to ignore it? We've obviously gotten the information we need
to know, but I guess I just want to know the entire meaning of the state
key. Maybe some more communications with the MS techs will reveal that.
The perform the test in batch, assume %State% contains the state:

call hexec %State% hex
set /a ans="%hex%&0x800"
if %ans% EQU 2048 goto Temp_Profile

I don't think I really understand how you're just extracting the 800h
bit here. It might be the programming syntax that you're using that I
don't understand because I don't do much programming in batch files.

BUT! I'm going to try...

So, looking at the help for the SET command, /a is for an expression and
& is bitwise AND. So, what you're doing is first calling some script
(hexec) to convert the value %state% to a hex value stored in %hex%.
Next you are doing a bitwise AND to compare the value stored in %hex% to
see if it contains the 800h bit. If it does, it will return 2048 which
is 800h and you can test for that with a simple IF statement. Neat! It
was the bitwise AND that I didn't know about previously ;)

So, in my vbscript, since the value retrieve is a decimal value, I just
need to do something like:

intRetrievedStateValue AND 2048

Which will return 2048 if that 800h bit is thrown. Sound right? I just
tested it and it seems to work, but I figured I'd ask for a sanity check.

Thanks!
Mike
 
M

Mark V

[ huge snip see up-thread ]
I have posted elsewhere in case anyone there is interested, They
may read or join this existing thread.
Hey Mark,
When I was talking to the tech, they kept wanting to know why a
temporary profile was getting loaded and I kept trying to tell
them that that wasn't my issue. I know why it's happening
(Lotus Notes, among other programs, sometimes holds it open) and

And do you use the UPHC tool from MS? User Profile Hive Cleanup
(service) that will close out any open handles into ntuser.dat.
With such in use one can still regard information posted into the
Event Logs by UPHClean while also preventing delays in closing out
the User Profile during logoff/shutdown. Recommended.
http://www.microsoft.com/downloads/details.aspx?familyid=
1B286E6D-8912-4E18-B570-42470E2F3582&displaylang=en
or
http://masl.to/?I4E921F67
I want to be able to detect that error state. I am also doing
some other profile things that tend to lock it up as well, so I
just need to be able to mitigate those situations and handle
them gracefully. Anyways, I finally got to someone on the AD
development team and she found that internal listing of State
values and sent it to me. I didn't really get to ask about the
33028 because she barely understood the question, and I was SOOO
happy to get that State data that I told her I'd look into it
and see if it solved my problem instead of confusing her any
more ;)

And a great find that data! You might ask next time for a
"ticket" number in case of additional dialog required.

But it seems Jerold is on to "interpreting" the found values now so
in all likelihood he will be your better source of information. He
does have internal contacts at Microsoft as well.
I can easily replicate the problem and this is happening on an
XP Pro box. However, I believe that it will happen on other NTx
flavors of Windows as well, and I'd venture to guess that those
State values are the same for the different OSes.

To be hoped. Considering they seem to have been entirely
undocumented in the public information though will always leave one
wondering just a bit said:
Lemme know if you hear anything from your other groups. Also,
you might want to take a look at my reply to Jerold as it might
be helpful. I'm pretty excited that I got this information from
MS so far and this might open up some pretty nifty opportunities
to understand what's going on internally with user profiles!

I will follow along and learn over your shoulder. Thanks for
actually raising the question at the outset! Interesting stuff.
 
M

Mike S

Hey Mark,
And do you use the UPHC tool from MS? User Profile Hive Cleanup

Yeah, I run UPHClean on every computer in our domain, however, Lotus
Notes still likes to hang the profile. I just went on my boss' computer
yesterday and he had logged in, ran Notes, then logged off. I logged in
with his account and was loaded in with a temporary profile even though
hours had passed between the two logins, so UPHClean wasn't able to shut
it down.
And a great find that data! You might ask next time for a
"ticket" number in case of additional dialog required.

I have a ticket number, and they keep calling me and asking if it's
resolved and to either call back or email. So, I email them back that
I'd like more information and they call me back to ask if the issue has
been resolved.. hehehe.. I think there's a break somewhere in the lines
of communication ;)
But it seems Jerold is on to "interpreting" the found values now so
in all likelihood he will be your better source of information. He
does have internal contacts at Microsoft as well.

You both have been extremely helpful. I didn't realize that those
values were hex until you pointed that out and then things started to
make much more sense.

I'd still like to know what the values above 800h mean, though. I'm
going to keep digging!
To be hoped. Considering they seem to have been entirely
undocumented in the public information though will always leave one
wondering just a bit <G>

Yeah.. I've been searching EVERYWHERE for this data for a LOOOOONNNNGGG
time and I finally got something, but only through a lot of
collaboration. I am going to check w/ my friend that is running Vista
to see what his State values are. I'm pretty sure the values are
consistent w/ 2k and NT, but we're not running 2k or NT anyways.

I will follow along and learn over your shoulder. Thanks for
actually raising the question at the outset! Interesting stuff.

Well, if you're curious, the real reason that I wanted to know is
because I'm making a somewhat unorthodox script that goes against the
normal way that profiles are handled. It drives me nuts to no end that
when an admin goes on a user's workstation, the admin gets their own
profile. I want to see the *user's* profile, not some default profile!

So, I wrote a script that allows an administrator to impersonate a user
by copying the user's profile path and setting the administrator's
profile path to the user's path. It pops up a menu when the admin logs
in and he can pick which user to impersonate. Then the next time the
administrator logs in, he sees the user's desktop as the user would see
it, yet with administrator privileges.

The problem comes along where the user logs out and the administrator
tries to log in, but the profile is locked for one reason or another
(i.e. notes) and the administrator is now logged in with a temporary
profile. The script needs to be smart enough to recognize this and
forces a logoff, and if that doesn't fix the situation, forces a reboot
if the admin logs in again. That usually fixes the problem.

As much as I'm annoyed at Notes, I'm extremely pleased that I can
consistently reproduce this problem over and over, which is normally
difficult to do, especially with UPHClean.

Interestingly enough, I found a bug in Windows during this whole
process. Normally, if windows logs you on with a temporary profile, it
will follow these folder naming conventions:

Local account that couldn't be loaded:
TEMP
TEMP.COMPUTERNAME
TEMP.COMPUTERNAME.001
TEMP.COMPUTERNAME.002
etc..

or

Domain account that couldn't be loaded:
TEMP
TEMP.DOMAINNAME
TEMP.DOMAINNAME.001
TEMP.DOMAINNAME.002
etc..


So, let's say I log in under a domain account (msoultanian) on the
machine and it logs in normally. I go run Notes so I know the next
login is going to be a temporary profile. I also go and create the
folder "c:\documents and settings\temp" for kicks. I log off and then
log back in with the same account and get the usual warning that I've
been logged in under a temporary profile and it will be deleted upon logoff.

Since I was logged in under a temporary profile, it *should* have
created a new profile folder called "c:\documents and
settings\TEMP.DOMAINNAME" because "c:\documents and settings\temp"
already exists, but it doesn't! It incorrectly logs me in under
"c:\documents and settings\msoultanian"!!! And guess what happens when
you logoff? UH OH! Bye bye profile. Needless to say, my boss wasn't
too thrilled when I wiped out his profile... whooooops!

Now, what's the chance that someone's randomly going to create a folder
called temp in c:\d&s, but ya never know.

When I get the script finished, I will post it up. It is AMAZING how
much time this saves when working with users and installing software for
them.

Mike
 
M

Mark V

In said:
Yeah, I run UPHClean on every computer in our domain, however,
Lotus Notes still likes to hang the profile. I just went on my

Ouch. But I know nothing of Notes...
And I assume this is a "known problem" that has seen discussion
elsewhere and has not been resolved fixed, or even adequately
identified.
boss' computer yesterday and he had logged in, ran Notes, then
logged off. I logged in with his account and was loaded in with
a temporary profile even though hours had passed between the two
logins, so UPHClean wasn't able to shut it down.

And setting UPHC to do extra logging was not fruitful I must
assume. Ah well, it would be nice to find and fix that problem as
it seems fairly severe and the source of irritation to say the
least. I guess all this is only tangential to the main topic as
you describe below though.
[ ]
You both have been extremely helpful. I didn't realize that
[ ]
Shared information is a good thing! ;)
I'd still like to know what the values above 800h mean, though.
I'm going to keep digging!

More "undocumented stuff" perhaps? Although it seems that in
practice such might be irrelevant or just taken into account when
determining the state of the profile. If I understand it correctly
at this time.

[ ]
Well, if you're curious, the real reason that I wanted to know
is because I'm making a somewhat unorthodox script that goes
against the normal way that profiles are handled. It drives me
nuts to no end that when an admin goes on a user's workstation,
the admin gets their own profile. I want to see the *user's*
profile, not some default profile!

I sympathize with that frustration! <G>

Snipped below here for now. I may have the time to comment on this
method in another follow-up at a later time. Interesting though!

It seems to me that _somehow_ eliminating the Lotus Notes
"problem" would make everything a lot easier. I cannot offer
anything along those lines other than to suggest possible
monitoring of registry and file handles (possibly from a spawned
Lotus process?) and if identifiable, trying to force them closed.
Some of the Sysinternals tools might be useful in this quest.
 
M

Mike S

Mark said:
It seems to me that _somehow_ eliminating the Lotus Notes
"problem" would make everything a lot easier. I cannot offer
anything along those lines other than to suggest possible
monitoring of registry and file handles (possibly from a spawned
Lotus process?) and if identifiable, trying to force them closed.
Some of the Sysinternals tools might be useful in this quest.

Well, it's not really Notes that I'm worried about. Actually, to be
honest, I have to do some kinda whacky stuff to get it to do it. I
start Notes as a scheduled task on login and also add Notes to the
startup menu. The only reason I figured that out is because my coworker
did that for some odd reason (still boggles me!) and started having
Notes freak out; I then used that to my advantage to replicate the error
for testing ;)

Ultimately, I am trying to make sure I protect against *anything*
locking up the profile. UPHClean has been great, but it's always the
unknowns that get ya and so I'm just building in some error checking,
really. I just want to make sure that given those error situations, the
script will handle them gracefully and inform the user of what's going on.

thanks!
Mike
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top