[Samba] netlogon script generation

Andrew Gaffney agaffney at technaut.darktalker.net
Tue Dec 9 18:38:20 GMT 2003


This was the script I was refering to that didn't work for me. I ended up re-writing 
almost completely from scratch to support multiple groups.

#!/usr/bin/perl

my ($user) = @ARGV;
my $drives = {F => "NET USE F: \\\\SKYLINE\\SKYLINEF\r\n",
               H => "NET USE H: \\\\SKYLINE\\SHARE\r\n",
               I => "NET USE I: \\\\SHIPPING1\\INVENTORY\r\n",
               M => "NET USE M: \\\\SKYLINE\\SKYLINEM\r\n",
               S => "NET USE S: \\\\SHIPPING1\\SHOP\r\n",
               Y => "NET USE Y: \\\\ACCOUNTING\\FLTSCHOOL\r\n",
               Z => "NET USE Z: \\\\ACCOUNTING\\MAINT\r\n"};
my $which = {accounting => "F H I M S Y Z", mech => "I M S Z", dispatch => "M", 
instructors => "M"};
my $groups = `cat /etc/group | grep ${user} | cut -d ':' -f 1`;
$groups =~ s/\n/\:/sg;

# Start generating logon script
#open LOGON, ">/usr/local/samba/netlogon/${user}.bat";
open LOGON, ">/tmp/${user}.bat";
print LOGON "\@ECHO OFF\r\n";

foreach $group (split /:/, $groups) {
   foreach $drive (split / /, $which->{$group}) {
     print LOGON $drives->{$drive};
   }
}

close LOGON;
system "cat /tmp/${user}.bat | sort -u > /usr/local/samba/netlogon/${user}.bat";

rruegner wrote:
> Hi, here is an example start this script with root prexec in the netlogon
> share
> it will create netlogon bat files for users and groups which can
> the orginal file is genlogon.pl
> which is part of samba, read the doku, all other stuff is done by netlogon
> bat files ( there are several examples in the web )
> Best Regards
> 
> #!/usr/bin/perl
> #
> # login.pl
> # creation on the fly logon scripts by robowarp at gmx.de inspired by
> genlogon.pl
> # Log client connection
> #($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
> ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
> open LOG, ">>/smbmonitor/user/netlogon.txt";
> print LOG "$mon/$mday/$year $hour:$min:$sec - User $ARGV[0] Group $ARGV[1]\n
> from $ARGV[2] in $ARGV[3]";
> close LOG;
> 
> # Start generating logon script for user
> open LOGON, ">/var/lib/samba/netlogon/$ARGV[0].bat";
> print LOGON "\@ECHO OFF\r\n echo %USERNAME%\r\n call send.bat\r\n";
> 
> # Start generating logon script for machine for different security
> monitoring
> open LOGON, ">/var/lib/samba/netlogon/$ARGV[2].bat";
> print LOGON "\@ECHO OFF\r\n call chkdir.bat\r\n call listapp.bat >
> \\\\$ARGV[3]\\smbmonitor\\machines\\$ARGV[2]\\software\\$A$
> 
> # Start generating logon script for group
> open LOGON, ">/var/lib/samba/netlogon/$ARGV[1].bat";
> print LOGON "\@ECHO OFF\r\n";
> 
> # Connect shares for group users
> if ($ARGV[1] eq "users")
> {
> print LOGON "NET USE X: \\\\$ARGV[3]\\files\r\n";
> }
> 
> # Connect shares for group ntadmin
> if ($ARGV[1] eq "ntadmin")
> {
> print LOGON "NET USE Y: \\\\$ARGV[3]\\smbmonitor\r\n";
> }
> 
> ----- Original Message ----- 
> From: "Andrew Gaffney" <agaffney at technaut.darktalker.net>
> To: <samba at lists.samba.org>
> Sent: Tuesday, December 09, 2003 6:02 PM
> Subject: [Samba] netlogon script generation
> 
> 
> 
>>Can anyone point me to a doc or a script that shows how to generate
> 
> netlogon script on the
> 
>>  fly and supports users having multiple groups? I tried the Perl script
> 
> referenced at
> 
>><http://us2.samba.org/samba/docs/man/AdvancedNetworkManagement.html> but I
> 
> believe it only
> 
>>supports the user being a member of one group.
>>
>>-- 
>>Andrew Gaffney
>>
>>-- 
>>To unsubscribe from this list go to the following URL and read the
>>instructions:  http://lists.samba.org/mailman/listinfo/samba
>>
> 
> 
> 
> 


-- 
Andrew Gaffney



More information about the samba mailing list