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:
codice:
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
Grazie