Ma avevo bisogno di modificare una stringa in un file di sistema all'avvio del PC. Cosa c'è di meglio di uno script VBS per fare il lavoro? E per distribuirlo, le buone vecchie policy di Active Directory vanno sempre bene:
Dim WshShell, objEnv Dim FileContents, dFileContents Set WshShell = WScript.CreateObject("WScript.Shell") Set objEnv = WshShell.Environment("Process") FileContents = GetFile(objEnv("ProgramFiles") & "\ProgrammaCattivo\Config.cfg") dFileContents = Replace(FileContents, "StringaVecchia", "StringaNuova", 1, -1, 1) If dFileContents <> Filecontents Then WriteFile objEnv("ProgramFiles") & "\ProgrammaCattivo\Config.cfg", dFileContents End If Function GetFile(FileName) Dim FS, FileStream Set FS = CreateObject("Scripting.FileSystemObject") Set FileStream = FS.OpenTextFile(FileName) GetFile = FileStream.ReadAll End Function Function WriteFile(FileName, Contents) Dim OutStream, FS Set FS = CreateObject("Scripting.FileSystemObject") Set OutStream = FS.OpenTextFile(FileName, 2, True) OutStream.Write Contents End Function
E poi, naturalmente, è sempre utile sapere se e quando lo script è stato eseguito per davvero. Magari possiamo aggiungere anche qualche altra informazione di debug, che non fa mai male.
WshShell.RegWrite "HKLM\Software\MiaAzienda\Init_Settings_Eseguito", Now(), "REG_SZ" WshShell.RegWrite "HKLM\Software\MiaAzienda\Init_Settings_Sostituzioni", conteggio, "REG_SZ" etc...
Happy scripting, guys!
Nessun commento:
Posta un commento