Salve a tutti, ho scritto un piccolo script in vbscript per gestire la copia di alcuni file da una postazione ad n postazioni nella rete locale.
Funziona tutto, però l'ho testo con pochi pc e mi sono accorto che quando qualcosa non va (come ad esempio è fallita la copia) mi compare il messaggio di errore e interrompe tutto.
Nello script creo anche un file di log, e vorrei che i messaggi di errori venissero salvati e che lo script continuasse ad andare avanti con i pc successivi
Inserisco il codice finora scritto:
Graziecodice:Dim OggFile, Output, Input Dim ArgObj, LogFile, LstFile Dim objNetwork Const ForAppending = 8 Const ForReading = 1 Const ForWriting = 2 Set ArgObj = WScript.arguments LstFile = ArgObj(0) LogFile = Split(LstFile,".") Set fso = CreateObject("Scripting.FileSystemObject") Set objNetwork = CreateObject("WScript.Network") Set Output = fso.OpenTextFile(LogFile(0)+"_Log.txt", ForAppending, True) 'Controllo se il file di Input con la Lista esiste If fso.FileExists(LstFile) Then Set Input = fso.OpenTextFile(LstFile, ForReading, True) 'Eseguo un ciclo per ogni riga del file di Input Do Until Input.AtEndOfStream ArrayLine = Input.ReadLine strLine = Split(ArrayLine, ";") 'Check If Ping(strLine(0)) Then Output.WriteLine("--------------------------") Output.WriteLine(strLine(0)) Output.WriteLine("Ping status: OK") strLocalDrive = "K:" strRemoteShare = "\\"+strLine(0)+strLine(1) ' Mount remote Drive into the local Drive objNetwork.MapNetworkDrive strLocalDrive, strRemoteShare, False, "utente", "password" Output.WriteLine("Mount: OK") 'Rename original file from Original.exe to Original_OLD.exe fso.MoveFile strLocalDrive+"\Original.exe", strLocalDrive+"\Original_OLD.exe" Output.WriteLine("Move: OK") 'Copy new exec file into network drive fso.CopyFile "New.exe", strLocalDrive+"\Original.exe" Output.WriteLine("Copy: OK") 'Unmount network drive objNetwork.RemoveNetworkDrive strLocalDrive, True Output.WriteLine("UnMount: OK") Output.WriteLine() Else Output.WriteLine("--------------------------") Output.WriteLine(strLine(0)) Output.WriteLine("Ping status: NOT OK") Output.WriteLine() End If Loop Input.Close Else msgbox("Il file " + LstFile + " non esiste") End If Set ArgObj = Nothing Output.close Function Ping(strComputer) Dim wmiQuery, objWMIService, objPing, objStatus wmiQuery = "Select * From Win32_PingStatus Where Address = '" & strComputer & "'" Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set objPing = objWMIService.ExecQuery(wmiQuery) For Each objStatus in objPing If IsNull(objStatus.StatusCode) Or objStatus.Statuscode<>0 Then Ping = False 'Computer non raggiungibile Else Ping = True 'Computer raggiungibile End If Next End Function

Rispondi quotando