Hi,
I want to generate the logon script on the fly. I want to map user home
directory into H: drive.
Genlogon.pl script executes three times for single user, each time its
getting diffract argument value.
Here is my configuration
root preexec = /netlogon/genlogon.pl %U %G %L
logon script = %U.bat
logon path logon drive logon home domain logons
= Yes
[netlogon]
path = /netlogon
write list = ntadmin
locking = No
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, ">>/var/log/samba/netlogon.log";
print LOG "$mon/$mday/$year $hour:$min:$sec - User $ARGV[0] logged into
$ARGV[1] ==>";
print LOG " %U User $ARGV[0] : %G Group $ARGV[1] : %L Server
$ARGV[2]\n";
close LOG;
# Start generating logon script
open LOGON, ">/netlogon/$ARGV[0].bat";
print LOGON "\@ECHO OFF\r\n";
# Connect shares just use by Software Development group
if ($ARGV[1] eq "SOFTDEV" || $ARGV[0] eq "softdev")
{
print LOGON "NET USE M: \\\\$ARGV[2]\\SOURCE\r\n";
}
# Connect shares just use by Technical Support staff
if ($ARGV[1] eq "SUPPORT" || $ARGV[0] eq "support")
{
print LOGON "NET USE S: \\\\$ARGV[2]\\SUPPORT\r\n";
}
print LOGON "net time \\\\$ARGV[2] /set /y\r\n";
print LOGON "NET USE T: /delete /y\r\n";
print LOGON "NET USE T: \\\\$ARGV[2]\\tmp\r\n";
print LOGON "NET USE H: /delete /y\r\n";
print LOGON "NET USE H: \\\\$ARGV[2]\\$ARGV[0]\r\n";
# All done! Close the output file.
close LOGON;
# cat /var/log/samba/netlogon.log
2/9/104 23:24:44 - User %G logged into testpdc ==> %U User %G : %G Group
testpdc : %L Server
2/9/104 23:24:45 - User %G logged into testpdc ==> %U User %G : %G Group
testpdc : %L Server
2/9/104 23:24:47 - User user1 logged into Domain ==> %U User user1 : %G
Group Domain : %L Server Users
Generated script.
This one is wrong; it takes server name as users, correct server name is
testpdc.
mail:~ # cat /netlogon/user1.bat
@ECHO OFF
net time \\Users /set /y
NET USE T: /delete /y
NET USE T: \\Users\tmp
NET USE H: /delete /y
NET USE H: \\Users\user1
How will I generate the script with correct server name? Why this script
is executing three times with different argument values
Thanks
Sundaram