[OpenAFS] OpenAFS on windows - profile in AFS, who uses it?

Rodney M. Dyer rmdyer@uncc.edu
Sun, 10 Feb 2008 17:29:07 -0500


At 03:39 PM 2/10/2008, Rodney M. Dyer wrote:
>       When a user is logged on, a global drive cannot be unmounted by the 
> user which is nice. (This assumes they aren't an administrator.)

I'm replying to myself here because I forgot a couple of extra items at 
this point.

When a global drive is mounted, and the user logs on.  If you open an 
Explorer file browser the drive will show up as a "Disconnected Network 
Drive".  You are not able to change the label of this drive because the 
Explorer file browser does not consider that drive as yours, under your 
explorer shell mount table.  This is not a problem however because the 
drive operates as normal.  It's just ugly for the user to see the 
"disconnected" part.  We get questions from our users about this from time 
to time.  Others just don't care.

Related and ugly messy stuff related to the global drive...

If you have roaming profiles for your users, and you are using a global 
drive, then you need to figure out what to do about this registry key...

      [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]

This is the users explorer shell mount table.  Actually the disconnected 
drive is listed there in the mount table, but the Explorer lists it 
(recreates it) at every logon as a different GUID and so we can't do 
anything with that since we have no idea which GUID is the proper one to 
change (if we want to set a drive label).  As the user logs on and off over 
time this table will normally be managed by the shell for you.  However, if 
you are using global drives, the explorer shell will not ever remove those 
newly created GUIDs and it will begin to fill up over time with registry 
entries.  This is BAD.

At our site, since we have the luxury of being fully in control the users 
desktop experience, I decided to completely erase this folder at every user 
logon, using a user logon script.  Our user logon script runs before the 
explorer shell starts, so there is no interference with explorer while 
performing this deletion.  Since the "MountPoints2" folder is the root of a 
tree of registry keys, you need to delete that folder and everything under it.

I found the "MountPoints2" key quite by accident last year when doing 
research on why a drive label can't be set for "Disconnected Drives".  It 
was then that I observed that it filled up over time.

Once the user is logged on, if you create and other driver mounts to AFS 
for the user in a user logon script, then you CAN set the label 
name.  Here's the code I use for example...

Note:  this is the forced way by direct registry manipulation.  Microsoft 
frowns on this because you aren't supposed to go changing things behind the 
Explorers back, and besides, according to Microsoft you shouldn't change 
anything under their "Microsoft" key anyway.

      Drive mount in user logon script:     net use u: \\afs\%username%

      ntregedt AddValue HKEY_CURRENT_USER 
"Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##AFS#%username%" 
"_LabelFromReg" REG_SZ "AFS Unix Drive"

Here's the more appropriate programatic way (using vb scripting):

      Set oShell = CreateObject("Shell.Application")
      mDrive = "U:"
      oShell.NameSpace(mDrive).Self.Name = "AFS Unix Drive"


If you've understood this, then you must be sober, so enjoy,

Rodney