I know it's a really simple question but how can I verify if an end user is using a roaming profile in Windows Vista?

I should clarify -- I don't manage the user's network... I support a product that doesn't work with roaming profiles.

2 Answers 2


If you know the user's username and domain, you can walk them through checking it out.

  1. Click start and right-click Computer.
  2. Choose Properties.
  3. Click on Advanced System Settings on the left.
  4. Within the Advanced tab, click the Settings button under the User Profiles section.
  5. Look for the DOMAIN\user in the list and look to the right. The Type will either be Local or Roaming.

First, find the user's SID (in string format). The method you use will vary depending on your programming language. However, here is one way to do this (VBScript):

'Note: you must have domain/corporate network connectivity in order to complete this query for a domain account
'This will not work for a remote user that is not connected via VPN, for example.
strUserName = "flesniak"
strNetBIOSDomainName = "DOMAIN" 'Use the computer name if checking local account
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
Set objAccount = objWMI.Get("Win32_UserAccount.Name='" & strUserName & "',Domain='" & strNetBIOSDomainName & "'")
strUserSID = objAccount.SID

Once you have the SID, then query the registry key:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID>

and inspect the string value:


If the CentralProfile value is blank or nonexistent, then it's a local profile. If CentralProfile is configured to be a UNC path, then it's a roaming profile.

  • Looks good, but it would help to provide a method for finding the user's SID.
    – boot13
    Nov 27, 2015 at 23:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .