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