ISSUE DESCRIPTION and SYMPTOM:

New user logon may fail on a machine where Visual Studio 2013 has been installed in system context.

When such a user tries to log on to this machine for the first time, his logon could fail with this error message-

clip_image001

Once you log onto the machine (You might want to do this with one of the user accounts that you have been using i.e. for one of the accounts which already has a profile on the machine, or let the system provide you with a temporary one), you will also notice these event viewer errors-

clip_image003

clip_image004

clip_image006

The third Event viewer screen might look unrelated , but in fact this tells you about the underlying cause for this unexpected behavior.

If you actually go to this location and check for the permissions, you can expect to see-

clip_image008

CAUSE AND RESOLUTION:

When VS 2013 setup is run it calls devenv.exe (with /setup switch). Due to that the no-opt session SQM file is written which is new in VS2013. But the file is ACL'd to the running user. So when installation is done under SYSTEM account (which is sometimes the case when customers use Microsoft SCCM to install VS) it creates problems for standard Windows user logon because during installation the SQM file is created in 'Default' user and on user logon Windows fails to copy it from Default to the profile dir of logging in user due to ACLs.

SQM is Software Quality Metrics. When you choose to participate in the Customer Experience Improvement Program (CEIP), your computer or device automatically sends information to Microsoft about how you use certain products. Information from your computer or device is combined with other CEIP data to help Microsoft solve problems and to improve the products and features customers use most often. CEIP data is stored in files that have a .sqm file name extension.

The fix prescribed is to not write any (global or multi-session) SQM file when devenv.exe is running with /setup switch. We wrote a new method to inspect the command line for /setup switch and we used that to skip the call to SqmEndSession API. (Tested by patching the DLL, running devenv.exe under /setup switch and stepping through code. Observed that the SqmEndSession call is skipped and SQM file is not written.)

This has now been fixed in the new release of ‘Visual Studio 2013 with Update 2’, and it is recommended to use this package.

Here are the download links to these slipstreamed packages-

· Visual Studio Premium 2013

· Visual Studio Professional 2013

· Visual Studio Ultimate 2013

· Visual Studio Express 2013

More details at Description of Visual Studio 2013 Update 2

Content By: Ritwik Sinha