How do you force Steam to use a different account for each Windows user account on the same machine?

I just built a PC because my son wants to play PC games. I installed Windows 7, and created 2 user accounts, one for each of us. Within my Windows user account I installed Steam, and downloaded some games from my catalogue.

I was expecting that when the other Windows user account was logged in, it would see the Steam application, but would be required to log in again, thus allowing my son to use his own account. But when he logged in, Steam had retained my account details and was still logged in as me.

I don't want to share games. In fact I want the opposite, as I do not want my 12 year old to have access to 18 certificate games etc, and also I want to keep my achievements and friends lists to be just my own.

How can I tell Steam to use a different Steam account when logged into a different Windows account?


Because of the way that steam does things it's not able to have multiple auto sign in configurations per installation. You'll have to resort to trickery:

  • Disable account credential saving in the settings dialog.
  • Create a shortcut for Steam on each windows account, edit the properties and give it these launch options -login %u %p. This logs into Steam with the specified Username and Password combination. Replace %u with the username, and %p with the password you want to login with (Steam must be off for this to work).

Source.

If you still want Steam to automatically startup, while logging in to the appropriate account, disable automatic startup within Steam and place the shortcuts in the Start menu → Programs → Startup folders of each windows account.


I had the same issue, and while there are some good solutions here, none were quite right for me. I wanted to save my password for offline mode options, I didn't like the idea of relying on the Steam shortcut to do the work (they might launch Steam another way, like at startup), and I also didn't want to have multiple copies of Steam (since that wastes a lot of space).

Here's what works for me:

  1. Open the Steam directory, then the config subdirectory. Sort by date modified.
  2. For each Steam account:
    1. Sign into Steam, saving the login details.
    2. Quit Steam.
    3. Copy SteamAppData.vdf to SteamAppData_username.vdf (where username is the Windows user name you'll use for that Steam account).
  3. Create a new text file in the Steam directory (not the config subdirectory) called ChangeLoginPerUser.cmd with the following contents:

    @echo on
    move config\SteamAppData.vdf config\SteamAppData_backup.vdf
    copy "config\SteamAppData_%USERNAME%.vdf" config\SteamAppData.vdf
    
  4. Add a shortcut to this script in the All Users Startup folder. This is where to put it:
    1. Press Win+R
    2. The Run dialog pops up
    3. Enter this: shell:common startup

This means whenever a user logs on to Windows, it will move the old saved login out of the way (just in case an unanticipated user account logs in) and then copy your account's saved login as the current one in the directory.

If your other user accounts are not administrators, you may need to set the permissions of SteamAppData.vdf and the SteamAppData_username.vdf files to be full control by anyone. On my system, all 3 of the accounts are administrators, so I didn't have to do this.


It doesn't seem like Steam was really designed with this use case in mind. (There's no such thing as Steam Parental Controls, for instance, although both my Xbox 360 and my Wii have parental controls, if I remember correctly.) I've found several threads where people were having similar issues with their kids.

One suggestion was to change the shortcut to Steam so that it supplies a username and password from the command line, like so:

-login %u %p - This logs into Steam with the specified Username and Password combination. Replace %u with the username, and %p with the password you want to login with (Steam must be off for this to work.)

However, this seems like it could be worked around, especially if you tend to forget to log out of steam when you lock your computer. The account credentials might still be cached, and then you'd end up giving your kid access to your games without your knowledge. That's just one possible attack vector, there may be many others, not to mention storing your passwords in this manner is incredibly insecure.

There's also all manner of "free" games that are probably inappropriate for children, but which can be downloaded into any Steam account. Team Fortress 2 contains quite a bit of violence (not all of it cute and cuddly) and bad language, among other things. It's kind of a personal parenting decision as far as what you consider to be "off limits" - but there are free rated-M games on Steam, and TF2 is one of them.

I found this thread over at Gamers With Jobs to be illuminating. They suggested limiting the access rights to certain applications and/or other files (violent games included) using the Group Policy Editor and file permissions settings in Windows 7. This would ensure that your child's Windows account could not access the games in question, even if your Steam account was properly logged in and authorized.

Another thing that was brought up in that thread that I think needs to be said is this:

Whatever barriers you put in his way, are just puzzles between him and the prize, and the more you put barriers in his way the more he will discover ways around them. You're teaching him how to hack in the most effective way possible.

They go further to suggest that in addition to protecting the content, you should also realize that kids with unsupervised access to computers will figure out a way around any level of protection - regardless of how foolproof, given enough time. (I was a living example of this as a child, sorry Mom & Dad!) You might consider putting the machine somewhere public in addition to these security measures, so that it's more likely that their computer time will be more closely supervised.

Don't look at this just as a technical problem that needs a technical solution; it's a complex psychology problem with a technical manifestation.


I managed to have it like this:

When steam installs, it asks you "install for every user" or similar. Install only for you. And keep the installed data in your account. When your account is password protected, no other user except for admin should have access to your orders or account.

Then install steam again on your kids account. Again password protect it. Again click install only for this user. Again store all data in the users orders.

This is how I managed to separate mine and my brothers steam accounts. Oh and I also unmarked "automatically log in" but let "save password / remember me" simply press log in and you're good to go.

Hope this will word for you too.