OK, I think I FINALLY have it licked.
ingrp32.exe works for NT/2000.
ifmember.exe works for 9x.
I put both utilities in my netlogon volume and created the following script based on the one here:
http://www.franken.de/users/lisa/horshack/winnt/loginwithoutkixtart.htmlPlease review it and let me know if there is a more elegant (and simple) way of mapping drives based on group membership. Thanks -Dev
=================Devlyn's current login script====================
@echo off
net time \beesmain2 /set /yes
net use g: /home /yes
if exist c:\boot.ini goto :NOT9X
rem ==== mapping drives for all users =========================================
set drive=q
set newshare=\beesmain2\fileshare
if not exist %drive%:\nul goto alle1
net use %drive%: /delete
:alle1
net use %drive%: %newshare%
set drive=t
set newshare=\beesmain2\tmp
if not exist %drive%:\nul goto alle2
net use %drive%: /delete
:alle2
net use %drive%: %newshare%
rem ===== mapping group drives===============================
set askgroup=gr_sales
set drive=M
set newshare=\beesmain2\vl_sales
%logonserver%\netlogon\ifmember.exe %askgroup%
if X%errorlevel%==X0 goto aftersales
@echo Your are member of group %askgroup%
net use q: /delete
net use q: %newshare%
:aftersales
set askgroup=gr_marketing
set drive=N
set newshare=\beesmain2\vl_marketing
%logonserver%\netlogon\ifmember.exe %askgroup%
if X%errorlevel%==X0 goto aftermarket
@echo Your are member of group %askgroup%
net use r: /delete
net use r: %newshare%
:aftermarket
net use z: /delete /yes
@exit
rem ======================= WINNT/2000 ================================
:NOT9X
rem ========= mapping drives for all users ==============================
set drive=q
set newshare=\beesmain2\fileshare
if not exist %drive%:\nul goto alle1
net use %drive%: /delete
:alle1
net use %drive%: %newshare% /persistent:no
set drive=t
set newshare=\beesmain2\tmp
if not exist %drive%:\nul goto alle2
net use %drive%: /delete
:alle2
net use %drive%: %newshare% /persistent:no
rem ============= mapping group drives============================
rem is user in the local group "Administrators"?
rem error 0 = not member
rem error 1 = member in global group
rem error 2 = member in local group
rem error 3 = API failure
rem
rem is the user in this group?
set askgroup=gr_sales
rem if yes, map this
set drive=M
rem with this share
set newshare=\beesmain2\vl_sales
ingrp32.exe %askgroup%
if not errorlevel 2 goto notingrp1
echo %USERNAME% is member in group %askgroup%
rem delete mapping if it exists yet
if not exist %drive%:\nul goto connect1
net use %drive%: /delete
:connect1
net use %drive%: %newshare% /persistent:no
goto allok1
:notingrp1
echo %USERNAME% is NOT member in group %askgroup%
:allok1
rem is the user in this group?
set askgroup=gr_marketing
rem if yes, map this
set drive=N
rem with this share
set newshare=\beesmain2\vl_marketing
ingrp32.exe %askgroup%
if not errorlevel 2 goto notingrp2
echo %USERNAME% is member in group %askgroup%
rem delete mapping if it exists yet
if not exist %drive%:\nul goto connect2
net use %drive%: /delete
:connect2
net use %drive%: %newshare% /persistent:no
goto allok2
:notingrp2
echo %USERNAME% is NOT member in group %askgroup%
:allok2
net use z: /delete /yes
@exit
==========================================================