New Answer (2020-10-22)
By now, there are dedicated settings allowing you to control this behavior.
Go to Settings > Account > Sign-in options and scroll down to the bottom. There will be two settings:
- "Automatically save my restartable apps when I sign out and restart them after I sign in." (new in Windows 10 2004)
- "Use my sign-in info to automatically finish setting up my device after an update or restart."
I recommend turning both off, despite only the first seemingly dealing with this feature. I still noticed some apps opening after a restart if I did not turn off both options.
The following, old answer workarounds this by using a script to shutdown:
Here's a silly workaround for the similarly silly new feature.
Some background first: Windows seems to shutdown as if
%WINDIR%\system32\shutdown.exe was invoked with the
/sg /hybrid /t 0 parameters. The magic is in the
/sg parameter which tells it to "restart any registered applications" on the next boot. The "old"
/s parameter still exists and
shutdown can be invoked with it manually.
To quickly call
shutdown.exe like that, create a shortcut either in your apps list (
%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs for all users,
%APPDATA%\Microsoft\Windows\Start Menu\Programs for the current user), or somewhere else and then pin it to start.
The important shortcut properties are the following:
%WINDIR%\system32\shutdown.exe /s /hybrid /t 0
- Start in:
- Name: Add a non-breakable space (Alt+Num255) in front of it to appear at the top of the All Apps list. You can try other fancy Unicode characters if you like.
Minimized to prevent the ugly command prompt from popping up shortly.
- Icon: Change to something nice (there's an XP-style shutdown icon available in the default
shell32.dll, or some close / critical icons in
- Comment: Leave a rant here about the dumb new feature.
It can look like this in the end:
If you want a shortcut doing the same for restarting, the old
/r switch can be used which was replaced by the new