11,7 → 11,7 |
# dovesse accedervi manualmente |
# |
require 5.002; |
open STDERR, ">>/var/log/samba_netlogon.log"; |
open STDERR, ">>/var/log/samba_netlogon.log" || die "Errore [$!] apertura file '/var/log/samba_netlogon.log'\n"; |
|
$Mode = shift; |
$User = shift; |
48,6 → 48,7 |
|
my $samba_group = getgrnam('samba'); |
|
|
# =============================================================== SHARE |
if($Machine eq $Server){ |
# create share if not exist |
68,20 → 69,34 |
} |
|
# individuo indirizzo IP del Server |
use Net::DNS; |
my $res = new Net::DNS::Resolver; |
my $query = $res->search($Server); |
if($query){ |
foreach my $rr ($query->answer) { |
next unless $rr->type eq "A"; |
$IP_SERVER=$rr->address; |
$NET=$IPmachine; |
$NET=~s/\.(\d+)$/./; |
open IFCONFIG, "ifconfig |"; |
while(<IFCONFIG>){ |
### inet addr:192.168.8.120 Bcast:192.168.8.255 Mask:255.255.255.0 |
if(m/inet addr:(\d+\.\d+\.\d+\.\d+)\s+Bcast:$NET/){ |
$IP_SERVER=$1; |
last; |
} |
}else{ |
print STDERR "no dns\n"; |
die "query failed: ", $res->errorstring, "\n"; |
} |
} |
close IFCONFIG; |
($IP_SERVER) || die "No server IP on network $NET\n"; |
|
# individuo indirizzo IP del Server |
#use Net::DNS; |
#my $res = new Net::DNS::Resolver; |
#my $query = $res->search($Server); |
#if($query){ |
# foreach my $rr ($query->answer) { |
# next unless $rr->type eq "A"; |
# $IP_SERVER=$rr->address; |
# last; |
# } |
#}else{ |
# print STDERR "no dns\n"; |
# die "query failed: ", $res->errorstring, "\n"; |
#} |
|
# =============================================================== SQL CONNECTION |
use DBI; |
my $dbh = DBI->connect('dbi:Pg:dbname=cms;host=localhost', 'cms', 'cmsutil') || die "DBI Error open database: ".DBI::errstr."\n"; |
123,13 → 138,13 |
my $STARTUP="/home/samba/machine/$IPmachine/.system/.startup.bat"; |
my $LOGON="/home/samba/machine/$IPmachine/.system/.logon.bat"; |
|
if(-f $LOGON){ |
unlink $LOGON; |
} |
# if(-f $LOGON){ |
# unlink $LOGON; |
# } |
|
if(-f $STARTUP){ |
unlink $STARTUP; |
} |
# if(-f $STARTUP){ |
# unlink $STARTUP; |
# } |
|
my $OTU="/home/samba/machine/$IPmachine/.system/.otu.exe"; |
my $POWEROFF="/home/samba/machine/$IPmachine/.system/.poweroff.exe"; |
218,7 → 233,7 |
exit 1; |
} |
} |
open LOG, ">$LOG"; |
open LOG, ">$LOG" || die "Errore [$!] apertura file '$LOG'\n"; |
close LOG; |
chmod 0660, $LOG; |
chown 0, $samba_group, $LOG; |
230,7 → 245,7 |
} |
# creo/aggiorno il file di logon |
# Windows XP non esegue lo startup indicato nelle policy; lo eseguo invece dallo script di logon |
open CMD, ">$LOGON"; |
open CMD, ">$LOGON" || die "Errore [$!] apertura file '$LOGON'\n"; |
# print CMD "net use P: /HOME /YES\r\n"; |
print CMD "net use H: \\\\$Server\\HOME /YES\r\n"; |
print CMD "net use N: \\\\$Server\\NETLOGON /YES\r\n"; |
244,7 → 259,7 |
chown 0, $samba_group, $LOGON; |
|
# creo/aggiorno il file di startup che verrà eseguito dal PC client |
open CMD, ">$STARTUP"; |
open CMD, ">$STARTUP" || die "Errore [$!] apertura file '$STARTUP'\n";; |
print CMD <<__CMD__; |
\@ECHO OFF\r |
REM net use N: \\\\$Server\\netlogon /YES\r |
346,7 → 361,8 |
symlink "/opt/cms/lib/vnc", "/home/samba/machine/$IPmachine/.system/.vnc"; |
} |
# genero il file da caricare con regedit |
open VNC, ">/home/samba/machine/$IPmachine/.system/.vnc.reg"; |
my $VNCFILE="/home/samba/machine/$IPmachine/.system/.vnc.reg"; |
open VNC, ">$VNCFILE" || die "Errore [$!] apertura file '$VNCFILE'\n";; |
print VNC <<__VNC__; |
REGEDIT4\r |
\r |