To recap:

1) You have students taking one or more classes (excludes arranging users in groups, since user might be in multiple groups)
2) Each student will only get the appropriate class mapping
3) Each student will get the homeshare
4) Computers can be used for more than one class (would exclude arranging computers in groups in AD)

Solution:
1) Create hidden shares for the homedrives, preferably based on the username. Thus, you'd end up with local directories on a server like
D:\USERS\USER1 and hidden share USER1$
D:\USERS\USER2 and hidden share USER2$

2) Create hidden shares for the class directories like
E:\CLASSES\BEGINNINGKEYBOARDING with hidden share BEGINNINGKEYBOARDING$
E:\CLASSES\HACKING101 with hidden share HACKING101$

3) Create a CLASSES.INI file in the same directory where the login script is. Format:
[CLASSES]
BEGINNINGKEYBOARDING=\\server1\beginningkeyboarding$
HACKING101=\\server2\hacking101$

Basically, you assign the share to the appropriate classname

Then you can use READPROFILESTRING to read in the list of classes. Have the student choose a class and then read the drive mapping for that class. Basic code would look like this:
code:
$classes=readprofilestring(@scriptdir+'\classes.ini','Classes','')
$classes=split($classes,chr(10))
$selection=-1
do
cls
for $class=0 to ubound($classes)
? ''+$class+') '+$classes[$class]
next
gets $selection
$selection=val($selection)
until $selection>=0 and $selection<=ubound($classes)
$class=$classes[$selection]
$classmapping=readprofilestring(@scriptdir+'\classes.ini','Classes',$class)

net use H: $classmapping
if @error
? 'Error mapping drive H: to '+$classmapping
? 'Error code: '+@ERROR+' - '+@SERROR
endif

$homeshare='\\server\'+@USERID+'$$'
net use I: $homeshare
if @error
? 'Error mapping drive I: to '+$homeshare
? 'Error code: '+@ERROR+' - '+@SERROR
endif



[ 22. August 2002, 03:37: Message edited by: sealeopard ]
_________________________
There are two types of vessels, submarines and targets.