summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/Samba-Guide/Chap01-WindowsNetworkingPrimer.xml2
-rw-r--r--docs/Samba-Guide/Chap08b-MigrateNW4Samba3.xml281
2 files changed, 137 insertions, 146 deletions
diff --git a/docs/Samba-Guide/Chap01-WindowsNetworkingPrimer.xml b/docs/Samba-Guide/Chap01-WindowsNetworkingPrimer.xml
index 429ac4065a..331477b5ea 100644
--- a/docs/Samba-Guide/Chap01-WindowsNetworkingPrimer.xml
+++ b/docs/Samba-Guide/Chap01-WindowsNetworkingPrimer.xml
@@ -1160,7 +1160,7 @@
The use of WINS reduces network broadcast traffic. The reduction is greatest when all network
clients are configured to operate in <parameter>Hybrid Mode</parameter>. This can be effected through
use of DHCP to set the NetBIOS node type to type 8 for all network clients. Additionally, it is
- beneficial to configure Samba to use <smbconfoption name="name resolve order"/>wins host cast</smbconfoption>.
+ beneficial to configure Samba to use <smbconfoption name="name resolve order">wins host cast</smbconfoption>.
</para>
<note><para>
diff --git a/docs/Samba-Guide/Chap08b-MigrateNW4Samba3.xml b/docs/Samba-Guide/Chap08b-MigrateNW4Samba3.xml
index 3b4bedee8f..fc2652e8eb 100644
--- a/docs/Samba-Guide/Chap08b-MigrateNW4Samba3.xml
+++ b/docs/Samba-Guide/Chap08b-MigrateNW4Samba3.xml
@@ -48,7 +48,7 @@
of choice is much dependant on the tools that the administrator finds most natural to use.
The old-hand NetWare guru will likely want to use the tools like the NetWare NLM for
<command>rsync</command> to migrate files from the NetWare server to the Samba server.
- The UNIX administrator might prefer tools that are part of the Mars_NWE (Martin Stovers NetWare
+ The UNIX administrator might prefer tools that are part of the Mars_NWE (Martin Stovers' NetWare
Emulator) open source package. The MS Windows network administrator will likely make use of the
NWConv utility that is a part of Windows NT4 Server. Whatever your tool of choice,
migration will be filled with joyous and challenging moments - though probably not
@@ -186,7 +186,8 @@
<indexterm><primary>RPM</primary></indexterm>
<indexterm><primary>tree</primary></indexterm>
Building the LDAP database took a while, and a lot of trial and error. Following
- LDAP System Administration's guidance, I installed OpenLDAP (from RPM later I compiled
+ the guidance I obtained from Jerry Carter's book <quote>LDAP System
+ Administration</quote>, I installed OpenLDAP (from RPM; later I compiled
a more current version from source) and built my initial LDAP tree.
</para>
@@ -212,6 +213,12 @@
and SMTP.
</para>
+ <para>
+ Given that a decision had been made to use Courier-IMAP the schema <quote>courier.schema</quote>
+ from the Courier-IMAP source tarball is ncessary to resolve Courier-specific LDAP directory
+ needs.
+ </para>
+
</sect2>
</sect1>
@@ -330,7 +337,6 @@ index sn eq,sub
index uid eq,sub
index uidNumber eq
index gidNumber eq
-index memberUID eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
@@ -1214,200 +1220,185 @@ kxrpc.exe &lt;-- Probably useless as it has to run on the server and can
</para>
<example id="ch8kix">
-<title>Kixstart Control File &smbmdash; Part A</title>
+<title>Kixstart Control File &smbmdash; File: logon.kix</title>
+<screen>
+; This script just calls the other scripts.
+
+; First we want to get things done for everyone.
+
+; Second, we do first-time login stuff.
+
+; Third, we go through the group-oriented scripts one at a time.
+
+
+; We want to check for group membership here to avoid the overhead of running
+; scripts which don't apply.
+call "\\massive\netlogon\scripts\main.kix"
+call "\\massive\netlogon\scripts\setup.kix"
+IF INGROUP("MEGANET2\ACCT")
+ call "scripts\acct.kix"
+ENDIF
+IF INGROUP("MEGANET2\ENGR","MEGANET2\RECEPTIONIST")
+call "\\massive\netlogon\scripts\engr.kix"
+ENDIF
+IF INGROUP("MEGANET2\FURN")
+ call "\\massive\netlogon\scripts\furn.kix"
+ENDIF
+IF INGROUP("MEGANET2\TRUSS")
+ call "\\massive\netlogon\scripts\truss.kix"
+ENDIF
+</screen>
+</example>
+
+<example id="ch8kix2">
+<title>Kixstart Control File &smbmdash; File: main.kix</title>
<screen>
break on
-$RETURNCODE = EXISTKEY("HKEY_CURRENT_USER\Abmas")
-IF NOT $RETURNCODE = 0
-; Add key for Abmas-specific things on the first login
- ADDKEY("HKEY_CURRENT_USER\Abmas")
- ; The following key gets deleted at the end of the first login
- ADDKEY("HKEY_CURRENT_USER\Abmas\FIRST_LOGIN")
+; Choose whether to hide the login window or not
+IF INGROUP("MEGANET2\Domain Admins")
+ USE Z: \\massive\everything
+ SETCONSOLE("show")
+ELSE
+ ; Nobody cares about seeing the login script except admins
+ SETCONSOLE("hide")
ENDIF
+; Delete all previously connected shares
+USE * /delete
+
SETTITLE("Logging on @USERID to @LDOMAIN at @TIME")
; Set the time on the workstation
-$Timeserver = "\\corpsrv"
+$Timeserver = "\\massive"
Settime $TimeServer
-
-; Make sure they don't get someone else's home directory
-USE H: /DELETE
-
-; We need the home directory set up for the rest of the script to work
+; Map the home directory
USE H: @HOMESHR ; connect to user's home share
IF @ERROR = 0
+
H:
CD @HOMEDIR ; change directory to user's home directory
ENDIF
+; Everyone gets the N drive
+USE N: \\massive\network
+</screen>
+</example>
+
+<example id="ch8kix3">
+<title>Kixstart Control File &smbmdash; File: setup.kix, Part A</title>
+<screen>
+; My setup.kix is where all of the redirection stuff happens. Note that with
+; the use of registry keys, ths only happens the first time they log in ,or if
+; I delete the pertinent registry keys which triggers it to happen again:
+
+; Check to see if we have written the Borkholder subkey before
+$RETURNCODE = EXISTKEY("HKEY_CURRENT_USER\Borkholder")
+IF NOT $RETURNCODE = 0
+; Add key for Borkholder-specific things on the first login
+ ADDKEY("HKEY_CURRENT_USER\Borkholder")
+ ; The following key gets deleted at the end of the first login
+ ADDKEY("HKEY_CURRENT_USER\Borkholder\FIRST_LOGIN")
+ENDIF
+
; People with laptops need My Documents to be in their profile. People with
; desktops can have My Documents redirected to their home directory to avoid
; long delays with logging out and out-of-sync files.
-; The way that profiles are stored (per architecture) is taken advantage of here.
; Check to see if this is the first login -- doesn't make sense to do this
; at the very first login
-$RETURNCODE = EXISTKEY("HKEY_CURRENT_USER\Abmas\FIRST_LOGIN")
+$RETURNCODE = EXISTKEY("HKEY_CURRENT_USER\Borkholder\FIRST_LOGIN")
IF NOT $RETURNCODE = 0
-</screen>
-</example>
-<example id="ch8kix2">
-<title>Kixstart Control File &smbmdash; Part B</title>
-<screen>
- IF NOT INGROUP("MASSIVE\Laptop")
- $RETURNCODE=EXISTKEY("HKEY_CURRENT_USER\Abmas\profile_copied")
+; We don't want to do this stuff for people with laptops or people in the FURN
+; group. (They store their profiles in a different server)
+
+ IF NOT INGROUP("MASSIVE\Laptop","MASSIVE\FURN")
+ $RETURNCODE=EXISTKEY("HKEY_CURRENT_USER\Borkholder\profile_copied")
+
+; A crude way to tell what OS our profile is for and copy the "My Documents"
+; to the redirected folder on the server. It works because the profiles
+; are stored as \\server\profiles\user\architecture
IF NOT $RETURNCODE = 0
- IF EXIST("\\corpsrv\profiles\@userID\WinXP")
- copy "\\corpsrv\profiles\@userID\WinXP\My Documents\*"
-"\\corpsrv\@userID\"
- ENDIF
- IF EXIST("\\corpsrv\profiles\@userID\Win2K")
- copy "\\corpsrv\profiles\@userID\Win2K\My Documents\*"
-"\\corpsrv\@userID\"
+ IF EXIST("\\massive\profiles\@userID\WinXP")
+ copy "\\massive\profiles\@userID\WinXP\My Documents\*"
+"\\massive\@userID\"
ENDIF
- IF EXIST("\\corpsrv\profiles\@userID\WinNT")
- copy "\\corpsrv\profiles\@userID\WinNT\My Documents\*"
-"\\corpsrv\@userID\"
+ IF EXIST("\\massive\profiles\@userID\Win2K")
+ copy "\\massive\profiles\@userID\Win2K\My Documents\*"
+"\\massive\@userID\"
ENDIF
-
- ADDKEY("HKEY_CURRENT_USER\Abmas\profile_copied")
- WRITEVALUE("HKEY_CURRENT_USER\Software\Microsoft\Windows\
-CurrentVersion\Explorer\User Shell Folders", "Personal",
-"\\corpsrv\@userID","REG_SZ")
- WRITEVALUE("HKEY_CURRENT_USER\Software\Microsoft\Windows\
-CurrentVersion\Explorer\User Shell Folders", "My Pictures",
-"\\corpsrv\@userID\My Pictures", "REG_SZ")
- IF @PRODUCTTYPE="Windows 2000 Professional" or
-@PRODUCTTYPE="Windows XP Professional"
- WRITEVALUE("HKEY_CURRENT_USER\Software\Microsoft\Windows\
-CurrentVersion\Explorer\User Shell Folders", "My Videos",
-"\\corpsrv\@userID\My Videos", "REG_SZ")
- WRITEVALUE("HKEY_CURRENT_USER\Software\Microsoft\Windows\
-CurrentVersion\Explorer\User Shell Folders", "My Music",
-"\\corpsrv\@userID\My Music", "REG_SZ")
- WRITEVALUE("HKEY_CURRENT_USER\Software\Microsoft\
-Windows\CurrentVersion\Explorer\User Shell Folders", "My eBooks",
-"\\corpsrv\@userID\My eBooks", "REG_SZ")
+ IF EXIST("\\massive\profiles\@userID\WinNT")
+ copy "\\massive\profiles\@userID\WinNT\My Documents\*"
+"\\massive\@userID\"
ENDIF
</screen>
</example>
-<example id="ch8kix3">
-<title>Kixstart Control File &smbmdash; Part C</title>
+<example id="ch8kix3b">
+<title>Kixstart Control File &smbmdash; File: setup.kix, Part B</title>
<screen>
- $SELECTION =MESSAGEBOX("Changes were made to your registry.
-You must now log out. Please save any open files and click OK",
-"Log Out Necessary", 0)
- IF $SELECTION = 1
- IF $SELECTION = 1
- LOGOFF(Force)
+; Now we will write the registry values to redirect the locations of "My
+Documents"
+; and other folders.
+ ADDKEY("HKEY_CURRENT_USER\Borkholder\profile_copied")
+ WRITEVALUE("HKEY_CURRENT_USER\Software\Microsoft\
+Windows\CurrentVersion\Explorer\User
+Shell Folders", "Personal","\\massive\@userID","REG_SZ")
+ WRITEVALUE("HKEY_CURRENT_USER\Software\Microsoft\
+Windows\CurrentVersion\Explorer\User
+Shell Folders", "My Pictures", "\\massive\@userID\My Pictures", "REG_SZ")
+ IF @PRODUCTTYPE="Windows 2000 Professional" or @PRODUCTTYPE="Windows XP
+Professional"
+ WRITEVALUE("HKEY_CURRENT_USER\Software\Microsoft\
+Windows\CurrentVersion\Explorer\User
+Shell Folders", "My Videos", "\\massive\@userID\My Videos", "REG_SZ")
+ WRITEVALUE("HKEY_CURRENT_USER\Software\Microsoft\
+Windows\CurrentVersion\Explorer\User
+Shell Folders", "My Music", "\\massive\@userID\My Music", "REG_SZ")
+ WRITEVALUE("HKEY_CURRENT_USER\Software\Microsoft\
+Windows\CurrentVersion\Explorer\User
+Shell Folders", "My eBooks", "\\massive\@userID\My eBooks", "REG_SZ")
ENDIF
ENDIF
ENDIF
-ENDIF
-IF INGROUP("MEGANET2\Domain Admins")
- USE Z: \\corpsrv\everything
- SETCONSOLE("show")
-ELSE
- ; Nobody cares about seeing the login script except admins
- SETCONSOLE("hide")
+; Now we will delete the FIRST_LOGIN subkey that we made before.
+; Note - to run this script again you will want to delete the HKCU\Borkholder
+; subkey, log out, and log back in.
+$RETURNVALUE = EXISTKEY("HKEY_CURRENT_USER\Borkholder\FIRST_LOGIN")
+IF $RETURNVALUE = 0
+ DELKEY("HKEY_CURRENT_USER\Borkholder\FIRST_LOGIN")
ENDIF
+</screen>
+</example>
+<example id="ch8kix4">
+<title>Kixstart Control File &smbmdash; File: acct.kix</title>
+<screen>
+; And here is one group-oriented script to show what can be
+; done that way: acct.kix:
IF INGROUP("MASSIVE\Acct_Admin","MASSIVE\HR")
USE I: \\MEGANET2\HR_PR
- ; Eventually ABRA mapping will be here
ENDIF
-IF INGROUP("MEGANET2\Acct")
; Set up printer
-$RETURNVALUE = existkey("HKEY_CURRENT_USER\Printers\,,corpsrv,acct_hp8500")
+$RETURNVALUE = existkey("HKEY_CURRENT_USER\Printers\,,massive,acct_hp8500")
IF NOT $RETURNVALUE = 0
- ADDPRINTERCONNECTION("\\corpsrv\acct_hp8500")
- SETDEFAULTPRINTER("\\corpsrv\acct_hp8500")
+ ADDPRINTERCONNECTION("\\massive\acct_hp8500")
+ SETDEFAULTPRINTER("\\massive\acct_hp8500")
ENDIF
; Set up drive mappings
- USE M: \\corpsrv\ACCT
-
-ENDIF
-</screen>
-</example>
-
-<example id="ch8kix4">
-<title>Kixstart Control File &smbmdash; Part D</title>
-<screen>
-IF INGROUP("MEGANET2\Engr","MEGANET2\Truss","MEGANET2\Receptionist")
-$RETURNVALUE = EXISTKEY("HKEY_CURRENT_USER\Printers\,,corpsrv,engr_hp1300")
-IF NOT $RETURNVALUE = 0
- ADDPRINTERCONNECTION("\\corpsrv\engr_hp1300")
-ENDIF
-USE LPT3: "\\corpsrv\engr_legacy_printer"
-; Make sure the user can run MATLIST -- they need a .get file and it gets
-; created automatically if they don't have one (copied from one that works)
- IF NOT EXIST("\\corpsrv\data\batch\paths\@USERID.get")
- copy \\corpsrv\data\batch\paths\jenny.get
-\\corpsrv\data\batch\paths\@USERID.get
+ USE M: \\massive\ACCT
+ IF INGROUP("MEGANET2\ABRA")
+ USE T: \\trussrv\abra
ENDIF
-
-; The program was written to use a variable that exists
-; in Novell but not NT, so we set it here
- SET "LINAME=@USERID"
- ? "LINAME set to @USERID" ; for MATLIST program -- look in
-%L\DATA\BATCH\PATHS\username.get
-
-; Set up drive mappings here (X will go away eventually)
- USE L: \\corpsrv\engr
- USE G: \\corpsrv\apps
- USE Q: \\corpsrv\data
- USE U: \\corpsrv\utils
- use X: \\corpsrv\X
-
-;SET "PATH=L:\ENGINEER\MATLST;u:;h:;g:\ifsapp\runtime;
-c:\orawin95\bin;%PATH%;"
-ENDIF
</screen>
</example>
-<example id="ch8kix5">
-<title>Kixstart Control File &smbmdash; Part E</title>
-<screen>
-IF INGROUP("MEGANET2\Truss")
- ; Don't set up a default printer, they choose which one they want
-$RETURNVALUE =
-EXISTKEY("HKEY_CURRENT_USER\Printers\Connections\,,corpsrv,truss_hp4")
- IF NOT $RETURNVALUE = 0
- ADDPRINTERCONNECTION("\\corpsrv\truss_hp4")
- ENDIF
- $RETURNVALUE =
-EXISTKEY("HKEY_CURRENT_USER\Printers\Connections\,,corpsrv,truss_hp5n")
- IF NOT $RETURNVALUE = 0
- ADDPRINTERCONNECTION("\\corpsrv\truss_hp5n")
- ENDIF
- $RETURNVALUE =
-EXISTKEY("HKEY_CURRENT_USER\Printers\Connections\,,corpsrv,truss_hp4050")
- IF NOT $RETURNVALUE = 0
- ADDPRINTERCONNECTION("\\corpsrv\truss_hp4050")
- ENDIF
-
-ENDIF
-
-; Everyone gets the N drive
-USE N: \\corpsrv\network
-
-$RETURNVALUE = EXISTKEY("HKEY_CURRENT_USER\Abmas\FIRST_LOGIN")
-IF $RETURNVALUE = 0
- DELKEY("HKEY_CURRENT_USER\Abmas\FIRST_LOGIN")
-ENDIF
-</screen>
-</example>
-
-
<para>
As you can see in the script, I redirect the My Documents to the user's home
share if they are not in the “Laptop” group. I also add printers on a