Action That Runs Once per User

I would like to run an action that would only run once for each logged on user. I want to do this to make a preference setting which means the setting will be set once and then the user can change it. I am not seeing a clear way to do this if multiple people log onto a workstation.

You don’t indicate where the Preference Setting will be stored.
Can you not check for the Absence of that setting, and create it with your “default” value if it doesn’t exist?

Q: exists logged on users
Q: exists values “yourValue” of keys “Software\yourSoftware\preference” of current user keys (logged on users) of registry


That would be a policy and not a preference. I am looking to set the default browser to be Chrome for each users that logs on, but if they want to change to the default browser to something else, they can and it will not change back to Chrome.

You might consider a little-documented method called ActiveSetup. You can define a script that runs once, and only once, for each user at their next login. This is used by things like Internet Explorer or Windows Shell updates, where on next login a little window appears that says “Configuring settings for Internet Explorer” (or Media Player or etc…)

I have an example at


This is not true if the policy only triggers if the value has never been set by the user, which it is not always possible to tell, but sometimes can be.

I have done exactly this with browser default home pages. I had an analysis pull back what home pages were set to, then figured out which home pages were browser defaults, NOT customized by the user, then I set the homepage ONLY if it was set to a default. This way the user could change it at any time and my policy would NOT reapply. I actually had 1 user report to me after I did this that their browser home page kept changing, and I was like, oh that is very odd, that shouldn’t be happening, then I looked into it and found that they kept setting it to and I just assumed that was NOT a user doing it. I then made that check for that default more specific to avoid the case in which the user set the homepage to and not something else. (I basically just had to make the URL check slightly more specific if set to I probably could have figured this out ahead of time if I had a larger sample size and checked the multiplicity of unique values of… to realize it was only 1 user that had done this and it probably wasn’t a default value. I apologized to the user and had a laugh at my mistake.

Here is the 9 year old fixlet/task:

Thanks Jason. Active Setup is the perfect solution. I can implement it at the machine level and it gets applied at the user level.