One of the small and seemingly unimportant changes included with Windows 10 is how the “RunOnce” registry key is processed.  With version prior to 10, the statements placed under that key would be executed in serial or “synchronous” fashion.  With Windows 10 however, that key is processed in parallel or “asynchronous” fashion.  Whether this is a “bug” or a “feature” is yet to be officially declared.

What does this mean?

There are still quite a few software vendors and independent developers who use the RunOnce registry feature to handle post-restart processing.  Their installer will place files and registry keys, set things up and drop a set of instructions under RunOnce.  Then after the next restart, the instructions are executed and the application can then function.

What you may see with Windows 10 are situations where the RunOnce instructions are still being opened and executed while (or worse: after) the associated application is performing initialization tasks.  Tasks which assume the RunOnce instructions have already been completed.

Some uses for this approach (prior to Windows 10 at least) have been with setting up COM port mappings, USB device configuration, configuring or stopping/starting services, and messing with firewall ports.  There are other uses of course.  But these are fairly common with some types of applications which want to get certain configuration tasks out of the way as soon after Windows starts up as possible.

To use a human analogy:  Before, you would knock at the door. Wait for someone to open the door.  Then hand them a pizza.  Now, you knock at the door and shove the pizza into it before it opens.  Then they open the door and shoot you for smearing pizza sauce all over their new front door.  Now the news teams and cops are all over the place and you’re bleeding out.  Total mess.

There’s really not much you can do to preempt this potential mess.  What I’m suggesting is that:

  • This behavior could be added to your to-do list of troubleshooting steps when a newly-installed application implodes after the first restart.
  • If you package or develop software which relies on RunOnce processing, you should test that aspect on Windows 10 as soon as possible.

That’s all.  Cheers!

P.S.  Some of you may not be aware of the “!” prefix aspect to values placed under RunOnce.  Check it out too.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s