[Samba] Why does this logon-script not work under Win9x ?

Harry Rüter harry_rueter at gmx.de
Mon Aug 12 05:47:01 GMT 2002


Hi,

i'm having a serious problem with the following logon-script.
It works under W2k, but not under W98, although W98 tells
it is running startup-script ..

First my smb.conf (only interesting parts) :
---snipp---
[global]
        server string = Samba-PDC %v on %h
        workgroup = WORKGROUP
        encrypt passwords = yes
        netbios name = 486dx66
        domain master = Yes
        local master = Yes
        prefered master = yes
        wins support = no
        wins proxy = no
        security = user
        os level = 255
        domain logons = yes
        logon drive = v:
        logon path = \\%N\%u\ntprofile\%a
        logon home = \\%N\%u\.profiles
        logon script = logonsmb.bat
        log level = 1
        interfaces = 192.168.1.3/255.255.255.0
        dos filetime resolution = Yes
        socket options = TCP_NODELAY IPTOS_LOWDELAY
        bind interfaces only = Yes
        strict locking = Yes
        map to guest = Bad User
        lprm command = /usr/bin/lprm -P%p %j

        dos filetimes = Yes
        create mask = 0660

        preserve case = yes
        short preserve case = yes
        case sensitive =yes
        hide unreadable = yes
[netlogon]
    path= /opt/samba/netlogon
    read only = yes
    locking = no
    public = no
    writeable = no
    browseable = no
    root preexec = /opt/samba/netlogon/netlogon.sh %S %P %u %g %U %G \
             %H %v %h %m %L %M %N %R %d %a %I %$(HOSTTYPE) %T %p
   # creates the logon-script on each logon

---snipp---

Here's the logonscript (logonsmb.bat)

---snipp---
@ECHO OFF
set CURRENTSERVICE=netlogon
set ROOTDIRCURSERVICE=/opt/samba/netlogon
set USEROFCURRENTSERVICE=harry
set PRIMARYGRUOUPOFCURRENTSERVICEUSER=users
set SESSIONUSER=harry
set PRIMARYGROUPOFSESSIONUSER=users
set HOMEDIROFSERVICEUSER=/home/harry
set SAMBAVER=2.2.5
set INTERNETHOSTNAMEOFSAMBASERVER=486dx66
shift 1
set NETBIOSNAMEOFCLIENT=pentium200
shift 1
set NETBIOSNAMEOFSERVER=486dx66
shift 1
set INTERNETNAMEOFCLIENT=pentium200.hrnet.de
shift 1
set NAMEOFNISHOMEDIRSERVER=486dx66
shift 1
set PROTOCOL=NT1
shift 1
set PIDOFCURRENTSERVER=17049
shift 1
set ARCHITEKTUROFCLIENT=Win95
shift 1
set IPOFCLIENT=192.168.1.1
shift 1
set ENVAR_HOST_TYPE=i386
shift 1
set DATETIME=2002/08/12 15:53:40

@SET SERVER=%INTERNETHOSTNAMEOFSAMBASERVER%

@ECHO OFF

@echo Architektur = %ARCHITEKTUROFCLIENT%
@echo User = %USEROFCURRENTSERVICE%

REM It doesn't even stop here in W98 as if it's not called 
pause

@net use >>c:\netuse.txt

@net use u: /delete > nul
@net use w: /delete > nul
@net use x: /delete > nul
@net use y: /delete > nul


REM -----------------------------------------

@if "%ARCHITEKTUROFCLIENT%" == "Win2K" goto win2k
@if "%ARCHITEKTUROFCLIENT%" == "WinNT" goto win2k
@if "%ARCHITEKTUROFCLIENT%" == "Win95" goto win95
@if "%ARCHITEKTUROFCLIENT%" == "OS2"   goto OS2
@goto end


REM ------------Win2000----------------------
:Win2k
@net use /persistent:no
@NET TIME \\%Server% /SET /YES    > nul
@net use u: \\%Server%\homepages  > nul
@net use w: \\%Server%\fax        > nul
@net use x: \\%Server%\data       > nul
@if  "%USEROFCURRENTSERVICE%" == "administrator" goto root
REM @if  "%USEROFCURRENTSERVICE%" == "Administrator" goto root

:win2kend
@goto end
REM -----------------------------------------


REM ----------Win9x--------------------------
:win95
echo In Win95
@NET TIME \\%Server% /SET /YES
@net use /HOME  >>c:\netuse.txt
@net use u: \\%Server%\homepages
@net use w: \\%Server%\fax
@net use x: \\%Server%\data
@if  "%USEROFCURRENTSERVICE%" == "administrator" goto root
REM @if  "%USEROFCURRENTSERVICE%" == "Administrator" goto root

:win95end
@goto end
REM -----------------------------------------

REM -----------OS2---------------------------
:OS2
rem echo In OS2
@NET TIME \\%Server% /SET /YES   > nul
@net use u: \\%Server%\homepages > nul
@net use v: \\%Server%\homes     > nul
@net use w: \\%Server%\fax       > nul
@net use x: \\%Server%\data      > nul
@if  "%USEROFCURRENTSERVICE%" == "administrator" goto root
REM if  "%USEROFCURRENTSERVICE%" == "Administrator" goto root

:os2end

@goto end
REM -----------------------------------------

:root
@net use y: \\%Server%\rootdir$  > nul

:end


REM -----------------------------------------
@echo User %USEROFCURRENTSERVICE% has successfully mounted his/hers
shares
@pause
rem @call \\%Server%\netlogon\delme.bat %Server% > nul
REM -----------------------------------------

---snipp---


Any ieas, what's wrong ?
The script works perfectly, when copied to the W98-machine
and started there.
The script works also under W2k and OS2 ...


greets Harry



More information about the samba mailing list