Bonjour à tous, j'ai un petit problème avec un de mes scripts en vbs. Pour vous mettre un peu dans le contexte, nous avons ici plusieurs serveurs terminaux ou plusieurs usagers utilisent le même username pour ouvrir une session. Il arrive parfois qu'il y ait un problème avec une applications, donc il nous appelle et nous pouvons facilement, à distance fermer son bon processus à l'aide de son ID de session ou son PID. Pour l'instant tout va bien. Par contre, nous aimerions éviter que les gens nous appelent pour ce genre de problème, donc je travaille sur un script qu'il serait sur leur bureau, il clic sur le script et il va pouvoir fermer son applications, disons notepad automatiquement. Le problème ici c'est que si je fais un taskkill du process à l'aide du nom d'usager, il va fermer le notepad de tous les utilisateurs connectés ayant le même nom d'utilisateur. Donc, voici la raison pourquoi il nous ait nécessaire d'avoir l'information d'ID de session dans notre script. Bon.. j'espère avoir bien expliqué.
Niveau script, voilà ou j'en suis avec l'aide de forum sur le web. (Je ne suis pas en expert en script et loin de là!)
Bon ici c'est simplement quelques tests. L'idée c'est que j'aimerais bien avoir une variable pour avoir le ID de la session ou quelque chose du genre qui irait chercher le PID de l'application notepad pour la session de l'utilisateur courant et non les PID de tous les notepads des usagers utilisant le même nom session. Je sais pas si j'ai bien expliqué mon problème :X. Dans tous les cas merci à tout le monde qui ont prit le temps de lire ce message. Passez une bonne fin de journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Dim computer Set WshShell = WScript.CreateObject("WScript.Shell") computer = "." Dim process process = "notepad.exe" sessionname = WshShell.expandEnvironmentStrings("%SESSIONNAME%") 'WScript.Echo sessionname Set service = GetObject("winmgmts:\\" & computer & "\root\cimv2") 'Set results = service.ExecQuery(" Select * from Win32_Process where Name ='" & process & "' and SessionId = '" & sessionname & "' ") 'Set results = service.ExecQuery(" Select * from Win32_Process where Name ='" & process & "'") Set results = service.ExecQuery(" Select * from Win32_Process where processId = "'& sessionname &'" and Name ='" & process & "'") for each obj in results ' Wscript.echo obj.Name ' Wscript.echo obj.SessionId Wscript.echo obj.ProcessID next
Partager