|
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
|