TUTOS.EU

Fermer les processus de l'utilisateur à la fermeture de session

Comment,, au moment de la fermeture de session, forcer la fermeture des processus de l'utilisateur

Le vbscript

Option Explicit
'2014 06 23 version : Close users process
Dim objFSO, objFichierLog, CheminScriptActuel, CheminFichierdeLog, NomFichier
Dim WSHShell, ObjExec
Dim vUserName, vCOMPUTERNAME
Dim Commande
Dim Position


Const ForReading = 1
Const ForWritting = 2
Const ForAppending = 8

On error resume next

CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1)

NomFichier = wscript.scriptname
Position = InstrRev(NomFichier,".")
NomFichier = Left(NomFichier, Position - 1)

CheminFichierdeLog = CheminScriptActuel & "\LogsCloseUserProcess\" & NomFichier & "_Log.txt"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFichierLog = objFSO.OpenTextFile(CheminFichierdeLog, ForWritting, True)

Set WSHShell = CreateObject("WScript.Shell")
vUserName = WSHShell.ExpandEnvironmentStrings("%UserName%")
vCOMPUTERNAME = WSHShell.ExpandEnvironmentStrings("%COMPUTERNAME%")


objFichierLog.WriteLine(Now)
objFichierLog.WriteLine(VbTab & "vUserName : " &  vUserName)
objFichierLog.WriteLine(VbTab & "vCOMPUTERNAME : " &  vCOMPUTERNAME)


Commande = "taskkill /F /FI ""USERNAME eq " & vUserName & """"
objFichierLog.WriteLine(VbTab & "Commande : " &  Commande)

'Set ObjExec = WSHShell.Exec(Commande)
Set ObjExec = Nothing

objFichierLog.WriteLine("Terminé")
'Wscript.echo "Exe terminé"

Set WSHShell = Nothing

objFichierLog.Close
Set objFichierLog = Nothing
Lien vers le fichier : cliquez ici Copier le code

Exemple de .bat pour déclencher le script vbs après une attente de 4 secondes

@echo off
@timeout /t 4 /nobreak > nul
start cscript \\NomServeurDeFichiers\NomPartage$\CloseProcessActualUser.vbs
@timeout /t 4 /nobreak > nul
Lien vers le fichier : cliquez ici Copier le code

2