Hmmmm...that is very interesting.

What I would like to know, then, is how the @userid macro gets its information about the user's username? I mean, you don't have to do this:

EX. 1

SELECT
CASE @USERID=USER1
use H: "\\server1\user1"
CASE @userid=USER2
use H: "\\server1\user2"

you see my point? to put it another way, why should the following work:

EX. 2

$s1="\\server1\"
$drive=$s1+@userid
use H: $drive

but something like this won't work:

EX. 3

$gr="\\server1\groups\"
$gdrive=$gr+@primarygroup
use G: $gdrive

how does it know what to do with that "@userid" part in the 2nd example? it knows to get the user's username, because it is a macro (a macro is a function, yes? or no?) defined within the scripting language of kixtart itself. It is essentially pre-programmed by the kixtart gurus to find the user's username when you say "@userid". If it weren't, then you'd end up with errors, like H: trying to map to
\\Server1\god-only-knows-what-directory-"@userid"-is-supposed-to-be

So, what I wanna know is, how to use the @primarygroup as a macro, just like you use @userid as a macro. If Kixtart is smart enough to know how to find the user's username when you say "@userid", then shouldn't it be able to find the user's primary group when you say "@primarygroup"? I mean, I didn't make that up. That "@primarygroup" macro is in the manual. But how does it work in a script, exactly? I don't see why you would have to specify its value on every line, as you've suggested:

SELECT
CASE @PRIMARYGROUP=("PER")
Use G: "\\server1\PER"
...and so on...
ENDSELECT

seems to me that that is what a macro is for, to cut down on the busy work of specifying values over and over again.

Anyway, since I need to get this working, I've found a stopping place that gets the job done. Here is my final script:

;Kixtart script for Client
;April 2002

$LC="Legal Notice: Name of Client Organization"
$LN="You are signing onto computing and networking services provided by [somebody other than you]. These resources are furnished for the performance of your assigned job responsibilities. You are responsible for ensuring that they are used only for that purpose. You should not have any expectation that your computer files or E-mail
transmissions are 'private' in nature."

SELECT
CASE @INWIN=2
$rc = ADDKEY("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon")
$rc = WriteValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon", "LegalNoticeCaption", "$LC","REG_SZ")
$rc = WriteValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon", "LegalNoticeText", "$LN","REG_SZ")

CASE
$rc = ADDKEY("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon")
$rc = WriteValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "LegalNoticeCaption", "$LC","REG_SZ")
$rc = WriteValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "LegalNoticeText", "$LN","REG_SZ")
ENDSELECT

;---Delete All Previous Drive Mappings-----

use "*" /delete /persistent

;---Declare Variables----------

$s1="\\Server1\" ;file server and home directories
$s2="\\Server2\" ;nas box

$hdrive=$s1+@userid ;user's home directory
$odrive=$s2+@userid ;user's GroupWise archives directory


;---Map Drives------------------

use H: $hdrive

IF INGROUP("ArchivesGW")=1
use O: $odrive
ENDIF

SELECT
CASE INGROUP("ACC")
USE G: "\\Server1\ACC"
CASE INGROUP("ACT")
USE G: "\\Server1\ACT"
CASE INGROUP("ACD")
USE G: "\\Server1\ACD"
CASE INGROUP("BUD")
USE G: "\\Server1\BUD"
CASE INGROUP("CHA")
USE G: "\\Server1\CHA"
CASE INGROUP("CIG")
USE G: "\\Server1\CIG"
CASE INGROUP("DSS")
USE G: "\\Server1\DSS"
CASE INGROUP("EOP")
USE G: "\\Server1\EOP"
CASE INGROUP("FACTS")
USE G: "\\Server1\FACTS"
CASE INGROUP("FBOE")
USE G: "\\Server1\FBOE"
CASE INGROUP("FIN")
USE G: "\\Server1\FIN"
CASE INGROUP("GEN")
USE G: "\\Server1\GEN"
CASE INGROUP("ITRS")
USE G: "\\Server1\ITRS"
CASE INGROUP("IRM")
USE G: "\\Server1\IRM"
CASE INGROUP("OFP")
USE G: "\\Server1\OFP"
CASE INGROUP(OHR)
USE G: "\\Server1\OHR"
CASE INGROUP("OPA")
USE G: "\\Server1\OPA"
CASE INGROUP("PER")
USE G: "\\Server1\PER"
CASE INGROUP("SDD")
USE G: "\\Server1\SDD"
CASE INGROUP("SSD")
USE G: "\\Server1\SSD"
ENDSELECT

one last thought: I copied and pasted that first part from somebody's Starter's Guide. Is that a no-no? Do I have to cite them, as a co-author?

Whew! That's a lot to say, isn't it?

Thanks again everybody,
scsigrrrl99