Dim WSHShell Dim vUserName, varNewName Dim objFSO, objTextFile Dim NomFichier, CheminFichier, CheminScriptActuel, ScriptFileName, Position 'Déclaration des constantes Const ForReading = 1 Const ForWritting = 2 Const ForAppending = 8 Const CstLogger = 1 Set WSHShell = CreateObject("WScript.Shell") vUserName = WSHShell.ExpandEnvironmentStrings("%USERNAME%") 'Pour le login du user ScriptFileName = wscript.scriptname Position = InstrRev(ScriptFileName,".") if (Position > 0) Then ScriptFileName = Left(ScriptFileName, Position - 1) NomFichier = ScriptFileName & "_" & vUserName & "_Log.txt" CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1) CheminFichier = CheminScriptActuel & "\" & NomFichier 'Déclaration du chemin et du nom du fichier If CstLogger = 1 Then Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile(CheminFichier, ForWritting, True) objTextFile.WriteLine(Now) 'On ecrit la date et l'heure dans le fichier End If 'Wscript.Echo "vUserName : " & vUserName strComputer = "." WScript.Sleep(8000) If CstLogger = 1 Then objTextFile.WriteLine(Now & "Debut du premier passage") Call subRenamePrinters If CstLogger = 1 Then objTextFile.WriteLine(Now & "Fin du premier passage") WScript.Sleep(20000) If CstLogger = 1 Then objTextFile.WriteLine(Now & "Debut du second passage") Call subRenamePrinters If CstLogger = 1 Then objTextFile.WriteLine(Now & "Fin du second passage") WScript.Sleep(60000) If CstLogger = 1 Then objTextFile.WriteLine(Now & "Debut du troisieme passage") Call subRenamePrinters If CstLogger = 1 Then objTextFile.WriteLine(Now & "Fin du troisieme passage") Sub subRenamePrinters() Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Printer",,48) For Each objItem in colItems 'Wscript.Echo "-----------------------------------" 'Wscript.Echo "Win32_Printer instance" 'Wscript.Echo "-----------------------------------" varName = objItem.Name 'Wscript.Echo "Name: " & varName 'MyPos = InStr (Lcase(varName), lcase(vUserName)) 'If MyPos > 0 Then 'Si la file d'impression contient le login du user 'End If MyPos = InStr (Lcase(varName), "(") If MyPos > 0 Then 'Si la file d'impression contient une ( If CstLogger = 1 Then objTextFile.WriteLine(varName) 'Nom de l'imprimante regardée varNewName = Left(varName, MyPos-1) varNewName = Trim(varNewName) & "_" & vUserName 'Wscript.Echo "Renomage en " & varNewName If CstLogger = 1 Then objTextFile.WriteLine("Renommage en " & varNewName) 'Nom de l'imprimante regardée intResult = objItem.RenamePrinter(varNewName) Select case intResult 'Case 0 : WScript.Echo "Success" 'Case 5 : WScript.Echo "Access denied" 'Case 1801 : WScript.Echo "Invalid printer name" End Select 'exit for End If Next Set colItems = Nothing Set objWMIService = Nothing End Sub Set WSHShell = Nothing If CstLogger = 1 Then objTextFile.Close 'Fermeture du fichier Set objTextFile = Nothing Set objFSO = Nothing End If