📄 genlogon.pl
字号:
#!/usr/bin/perl## genlogon.pl## Perl script to generate user logon scripts on the fly, when users# connect from a Windows client. This script should be called from smb.conf# with the %U, %G and %L parameters. I.e:## root preexec = genlogon.pl %U %G %L## The script generated will perform# the following:## 1. Log the user connection to /var/log/samba/netlogon.log# 2. Set the PC's time to the Linux server time (which is maintained# daily to the National Institute of Standard's Atomic clock on the# internet.# 3. Connect the user's home drive to H: (H for Home).# 4. Connect common drives that everyone uses.# 5. Connect group-specific drives for certain user groups.# 6. Connect user-specific drives for certain users.# 7. Connect network printers.# 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]\n";close LOG;# Start generating logon scriptopen LOGON, ">/shared/netlogon/$ARGV[0].bat";print LOGON "\@ECHO OFF\r\n";# Connect shares just use by Software Development groupif ($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 staffif ($ARGV[1] eq "SUPPORT" || $ARGV[0] eq "support"){ print LOGON "NET USE S: \\\\$ARGV[2]\\SUPPORT\r\n";}# Connect shares just used by Administration staffIf ($ARGV[1] eq "ADMIN" || $ARGV[0] eq "admin"){ print LOGON "NET USE L: \\\\$ARGV[2]\\ADMIN\r\n"; print LOGON "NET USE K: \\\\$ARGV[2]\\MKTING\r\n";}# Now connect Printers. We handle just two or three users a little# differently, because they are the exceptions that have desktop# printers on LPT1: - all other user's go to the LaserJet on the# server.if ($ARGV[0] eq 'jim' || $ARGV[0] eq 'yvonne'){ print LOGON "NET UsE LPT2: \\\\$ARGV[2]\\LJET3\r\n"; print LOGON "NET USE LPT3: \\\\$ARGV[2]\\FAXQ\r\n";}else{ print LOGON "NET USE LPT1: \\\\$ARGV[2]\\LJET3\r\n"; print LOGON "NET USE LPT3: \\\\$ARGV[2]\\FAXQ\r\n";}# All done! Close the output file.close LOGON;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -