Batch dos e Script - Fabrizio Fumagalli in internet con FABRIZIO-ONLINE.IT

Vai ai contenuti

Menu principale:

INFORMATICA
PING: Batch dos
Questo batch permette di tenere monitorati tramite ping, gli apparecchi hardware, e riceve la segnalazione tramite mail, appena una di queste non risponde.

Inserire nel file batch le righe di comando qui sotto evidenziate in azzurro

@ECHO OFF
TITLE Controllo IP

;----------------------------------- 

SET MachineList=lista.txt
SET ResultsFile=results.txt

;-----------------------------------

CLS
ECHO.
IF NOT EXIST "%MachineList%" (
 ECHO Non riesco a trolare l'elenco: %MachineList%
 PAUSE>NUL
 GOTO :EOF
)

ECHO Sto controllando tutte le macchine dell'elenco %MachineList% . . .
ECHO.

FOR /f "tokens=*" %%M in (%MachineList%) do CALL :CHECK "%%M"

GOTO :EOF

:CHECK
SET Machine=%~1
SET Machine=%Machine: =%

PING -n 2 -w 2000 %Machine%>NUL

rem IF %ERRORLEVEL% NEQ 0 ECHO %Machine% did not respond at %Time%>>%ResultsFile%
if not errorlevel 1 goto EOF

mailsend -ssl -port 465 -smtp smtp.gmail.com -auth-login -to "destinatario@destinatario.it " -from "mittente@gmail.com" -sub "%date% ALLE %time% LA POSTAZIONE %Machine% NON HA RISPOSTO AL PING" < FileConMessaggioMail.txt -user mittente@gmail.com  -pass "PasswordAccountMittente" -attach "AllegatoMail.log

 
EXIT /B

:EOF
EXIT /B

Il file lista.txt contiene l'elenco degli ip o nomi degli hosts da tenere monitorati. 
Esempio di cosa inserire nel file. 
 
192.168.1.1
192.168.1.200
notebook
192.168.1.150

Inserire un solo IP o nome per riga.

Il file results.txt è da creare e lasciare vuoto.

Entrambi i files txt, vanno creati nella stessa directory dove è stato salvato il batch.

Le parti in rosso, sono da personalizzare.
mittente@gmail.com può essere anche un dominio gestito tramite le Google Apps.
Naturalmente la parte di comandi che invia la notifica tramite MAILSEND... può essere sostituita dal comando BLAT che trovate sempre in alto a questa pagina.
DOS: Inviare mail da batch
Scaricare il programma BLAT da qui

Inserire nel file batch le righe di comando qui sotto evidenziate in azzurro

blat -install IndirizzoServerSMTP mittente@mittente.it
blat FileConMessaggioMail.txt -to destinatario@destinatario.it -cc destinatarioCC@destinatario.it -subject "titolo della mail" -attacht "AllegatoMail.log"

Le parti in rosso, sono da personalizzare.
Inviare mail tramite script in Visual Basic
 
Inserire nel file batch le righe di comando qui sotto evidenziate in azzurro

 
Set objMessage = CreateObject("CDO.Message")  
objMessage.Subject = "titolo della mail"  
objMessage.From = "mittente@gmail.com"  
objMessage.To = "destinatario@destinatario.it"  
objMessage.TextBody = "Testo della mail"
'objMessage.AddAttachment "AllegatoMail.log"

'==This section provides the configuration information for the remote SMTP server.
'==Normally you will only change the server name or IP.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2  

'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"

'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mittente@gmail.com"

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "PasswordAccountMittente"
objMessage.Configuration.Fields.Update
'==End remote SMTP server configuration section==
objMessage.Send


 

Le parti in rosso, sono da personalizzare.
mittente@gmail.com può essere anche un dominio gestito tramite le Google Apps
DOS: Inviare mail da batch tramite smtp.gmail.com che richiede SSL
Scaricare il programma MAILSEND da qui
Inserire nel file batch le righe di comando qui sotto evidenziate in azzurro
 
mailsend -ssl -port 465 -smtp smtp.gmail.com -auth-login -to "destinatario@destinatario.it" -from "mittente@gmail.com" -sub "titolo della mail" < FileConMessaggioMail.txt -user mittente@gmail.com -pass "PasswordAccountMittente" -attach "AllegatoMail.log

Le parti in rosso, sono da personalizzare.
mittente@gmail.com può essere anche un dominio gestito tramite le Google Apps
PERMESSI SU CARTELLE E FILES DA DOS
Se avete la necessità di cambiare i permessi di protezione su più cartelle contemporaneamente, potete creare un batch dos.
Prima di tutto è necessario scaricare il software SetACL.exe dal link http://helgeklein.com/download/ , poi nella stessa cartella dove è stato installato, creare il file .BAT contenente i comandi che vi risultano utili. 
Qui sotto alcuni comandi ( evidenziate in azzurro) che ho utilizzato:

1) Imposterà il controllo completo per l'utente EveryOne sulla cartella C:e scriverà il log su c:\log.txt
SetACL -on C:-ot file -actn ace -ace "n:EveryOne;p:full" -actn rstchldrn -rst "dacl,sacl" -log c:\log.txt

2) Imposterà il controllo completo per l'utente EveryOne sul registro di sistema HKEY_CLASSES_ROOT e scriverà il log su c:txt
SetACL -on "hkcr" -ot reg -actn ace -ace "n:EveryOne;p:full" -actn rstchldrn -rst "dacl,sacl" -log c:\log.txt

Utilizzando il comando SetACL -help verranno mostrati tutte le opzioni.
Non è possibile utilizzare SetACL per impostare i diritti sui singoli file, per fare questo ho usato un altro comando Calcs (Change Access Control Lists) che dovrebbe venire installato di default con windows, dalla versione 2000 in poi (da Windows Vista è stato aggiunto anche Icacls).

Qui sotto altri 2 esempi che ho utilizzato sempre nello stesso batch:

1) Imposterà il controllo completo per l'utente EveryOne su tutti i file .INI nella cartella c:
cacls "C:.ini" /e /C /g Everyone:F

1) Imposterà solo il permesso di lettura per l'utente EveryOne sul file win.ini nella cartella c:
cacls "C:\win.ini" /e /r Everyone
VISUALIZZATORE EVENTI: CANCELLA TUTTI GLI EVENTI
Questo batch permette di cancellare tutti gli eventi di windows 7
Inserire nel file batch le righe di comando qui sotto evidenziate in azzurro
 
@echo off
  
FOR /F "tokens=1,2*" %%V IN ('bcdedit') DO SET adminTest=%%V
  
IF (%adminTest%)==(Access) goto noAdmin
  
for /F "tokens=*" %%G in ('wevtutil.exe el') DO (call :do_clear "%%G")
  
echo.
  
echo goto theEnd
  
:do_clear
 
echo clearing %1
  
wevtutil.exe cl %1
  
goto :eof
  
:noAdmin
  
exit
 
Eseguire poi il batch come amministratore.
IP: CONFIGURARE CONNESSIONE LAN IN DHCP
Questo batch permette di configurare da dos la connessione lan in modalità DHCP.
Inserire nel file batch le righe di comando qui sotto evidenziate in azzurro:
 
netsh interface ipv4 set address name="Connessione alla rete locale (LAN)" source=dhcp
 
netsh interface ipv4 set dns name="Connessione alla rete locale (LAN)" source=dhcp
 
netsh interface ipv4 set wins name="Connessione alla rete locale (LAN)" source=dhcp
 
"Connessione alla rete locale (LAN)" è eventualmente da cambiare con il nome della connessione che trovate in Connessione di rete della sceda lan
Eseguire poi il batch come amministratore.
IP: CONFIGURARE CONNESSIONE LAN CON IP FISSO
Questo batch permette di configurare da dos la connessione lan con ip fisso.
Inserire nel file batch le righe di comando qui sotto evidenziate in azzurro:
 
netsh interface ipv4 set address name="Connessione alla rete locale (LAN)" static IndirizzoIP IPSubnetMask IPGateway store=persistent
 
netsh interface ipv4 add address name="Connessione alla rete locale (LAN)SecondoIP IPSecondoSubnetMask
 
netsh interface ip set dns "Connessione alla rete locale (LAN)" static addr=IPDns Primary
 
Le parti in rosso, sono da personalizzare.
"Connessione alla rete locale (LAN)" è eventualmente da cambiare con il nome della connessione che trovate in Connessione di rete della sceda lan
Eseguire poi il batch come amministratore.
SCRIPT VISUAL BASIC X NOTIFICA SCADENZA PASSWORD DOMINIO
Questo script in visual basic, permette se ad esempio inserito tramite GPO di logon, di notificare all'utente eventuale vicina scadenza della password dell'account di dominio.
Inserire nel file vbs le righe di comando qui sotto evidenziate in azzurro.
 
'========================================
' First, get the domain policy.
'========================================
Dim oDomain
Dim oUser
Dim maxPwdAge
Dim numDaysA
Dim warningDays
warningDays = 40
Set LoginInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & LoginInfo.UserName & "")
 
strDomainDN = UCase(LoginInfo.DomainDNSName)
strUserDN = LoginInfo.UserName
 
Set oDomain = GetObject("LDAP://" & strDomainDN)
Set maxPwdAge = oDomain.Get("maxPwdAge")
 
'========================================
' Calculate the number of days that are
' held in this value.
'========================================
numDays = CCur((maxPwdAge.HighPart * 2 ^ 32) + _
maxPwdAge.LowPart) / CCur(-864000000000)
'WScript.Echo "Maximum Password Age: " & numDays
 
'========================================
' Determine the last time that the user
' changed his or her password.
'========================================
Set oUser = GetObject("LDAP://" & strUserDN)
 
'========================================
' Add the number of days to the last time
' the password was set.
'========================================
whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)
fromDate = Date
daysLeft = DateDiff("d",fromDate,whenPasswordExpires)
 
'WScript.Echo "Password Last Changed: " & oUser.PasswordLastChanged
if (daysLeft < warningDays) and (daysLeft > -1) then
Msgbox "La password scade tra " & daysLeft & " giorni" & " il " & _
  whenPasswordExpires &chr(13) & chr(13) & "Premi CTRL + ALT + CANC " &_
    "e seleziona l'opzione 'Cambia password'.", 0, "AVVISO SCADENZA PASSWORD"
End if
 
'========================================
' Clean up.
'========================================
Set oUser = Nothing
Set maxPwdAge = Nothing
Set oDomain = Nothing

Il numero in rosso  è da personalizzare, con il numero di giorni prima che deve apparire la segnalazione.
 


Cerca






Fabrizio Fumagalli è in internet su FABRIZIO-ONLINE.IT
Torna ai contenuti | Torna al menu