[OpenAFS] mapping afs homedirs for windows users

Stephen Joyce stephen@physics.unc.edu
Fri, 21 Dec 2007 16:15:29 -0500 (EST)

Unlike Rodney, we don't refer to a unix passwd file, but build the paths. 
We create the smb mounts and map 4 static global drives via a startup 
script. We map 2 user drives (dynamic per user) via the logon script, which 
follows. (More advice follows script)

:: S30-OpenAFS-MapUserDrives.bat
:: setup the default environment
call \\ad.physics.unc.edu\dfs\scripts\panic\Environment.bat
echo %0 >> %FULLLOGFILE%

%nlfecho% Mapping user AFS drives ... >> %LOGFILE%

set firstcharacter=%username:~0,1%

%nlfecho% X >> %LOGFILE%
:: map X to /afs/physics.unc.edu/users/u/username
net use X: /delete
net use X: \\afs\users\%firstcharacter%\%username%

%nlfecho% W >> %LOGFILE%
:: map W to /afs/physics.unc.edu/users/u/username/Windows
net use W: /delete
net use W: \\afs\users\%firstcharacter%\%username%\Windows

echo done >> %LOGFILE%
:: end script

Environment.bat is called by many of our login and startup scripts and the 
locations of needed binaries, directories, and other variables are set 
there (so they can be adjusted for all scripts in one place). FULLLOGFILE 
is for admin diagnosis while text sent to LOGFILE is echoed to the screen 
interactively (thanks to a bit code that Rodney was kind enough to share).

Basically, mapping drives isn't hard at all, but my advice is that if 
you're building a true Windows _infrastructure_, then make sure your 
scripts are structured and manageable long-term. For instance, all of my 
startup and logon scripts are named SXX-description.bat and called in order 
by a wrapper script. Each script sources the same Environment.bat. For a 
unix admin reluctantly supporting Windows, this just makes me a happier 
admin. Any resemblance to unix rcX.d startup style is purely intentional.

Regarding mapped drives vs. UNC paths, our biggest problem is that file 
change notifications do not work on \\AFS UNC paths, as referenced in 
http://rt.central.org/rt/Ticket/Display.html?id=50864 . My understanding is 
that this will never be fixed on WinXP.

Cheers, Stephen
Stephen Joyce
Systems Administrator                                            P A N I C
Physics & Astronomy Department                         Physics & Astronomy
University of North Carolina at Chapel Hill         Network Infrastructure
voice: (919) 962-7214                                        and Computing
fax: (919) 962-0480                               http://www.panic.unc.edu

Don't judge a book by its movie.

On Fri, 21 Dec 2007, Rodney M. Dyer wrote:

> At 11:45 AM 12/21/2007, Dave Botsch wrote:
>> Those of you using windows and mapping a user's afs homedir to a windows 
>> drive, how are you doing it?
> Our xp logon scripts can see our unix passwd file so I just use some command 
> shell code something like the following...
>        :: get afs home directory
>        set "afs_homedir="
>        nlfecho Finding AFS home directory...
>        if not exist "\\afs\uncc\...\passwd" (
>                echo error.
>                echo Unable to access AFS UNIX passwd file.
>                exit /b 1
>        )
>        :: search password file for user's entry and get homedir
>        for /f "tokens=6 delims=:" %%i in ('findstr /i /b /c:"%UserName%:" 
> \\afs\uncc\...\passwd') do (
>                set "afs_homedir=%%i"
>        )
>        if not defined afs_homedir (
>                echo error.
>                echo User not found in passwd file.
>                exit /b 1
>        )
>        echo done.
>        :: remove the /afs and convert forward slashes to backslashes
>        set "xp_homedir=%afs_homedir:/afs=%"
>        set "xp_homedir=N:%xp_homedir:/=\%"
>        echo Homedir=%xp_homedir%
>        :: check for existance of home directory
>        nlfecho Checking AFS home directory...
>        if not exist "%xp_homedir%" (
>                echo error.
>                echo The home directory doesn't exist.
>                exit /b 1
>        )
>        echo done.
> Note that our users have the AD account home drive property set to something 
> like:
>     "n:\uncc\...\rmdyer"
> So the N: drive is already mapped globally when the user logs on via...
>     net use n: \\afs\all
> Of course global drives are now deprecated and are not supposed to be used, 
> but we still use them in XP.  We are working on plans to use UNC paths soon. 
> The trouble is that the xp command shell (cmd.exe) cannot use a UNC path as a 
> current directory, so I'm not sure what Microsoft "expects" us to use in the 
> Profile options dialog of the AD account options.
> Rodney
> _______________________________________________
> OpenAFS-info mailing list
> OpenAFS-info@openafs.org
> https://lists.openafs.org/mailman/listinfo/openafs-info