Bonjour,
je ne sais pas si je suis dans le bon forum il suffira de le déplacé le cas échéant, mais laissé moi vous exposé les choses auparavant.
je souhaite créer un script .vbs afin de gérer les connexions a un serveur TSE remoteapp, sur lequel j'ai 2 application publié.
le but étant de pouvoir lancé les 2 application mais uniquement depuis le même ordinateur, et interdire de lancé 2 fois la même application sur le même nom d'utilisateur.
j'ai déjà trouvé comment faire pour interdire le lancement de 2 fois la même application par le même utilisateur mais je bloque total sur l’accès depuis la même machine.
en fait j'ai peut être seulement besoin d'un œil extérieur car je réfléchi peut être dans le mauvais sens voila ce que je pensais faire dans sa première réflexion la plus simple.
vérifié si la 1ere application est lancé
récupérer le nom de la machine
vérifier lors du lancement de la 2nd application le nom de machine
si cela concorde permettre le lancement de la 2nd application sinon éjecter l'utilisateur.
je publier le vbs en remote app et le vbs lance un batch si toute les vérification sont positive.
actuellement le code ne permet que l'ouverture unique de l'application j'ai commencé a chercher pour la 2nd application mais je bloque.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Dim AllProcess Dim Process Dim strFoundProcessAppli1 Dim strFoundProcessAppli2 Dim strCurrentUser Dim strComputer Dim strProcessAppli1 Dim strProcessAppli2 Dim strOwner strProcessAppli1="'Appli1.exe'" strProcessAppli2="'Appli2.exe'" strFoundProcessAppli1 = False strFoundProcessAppli2 = False Set objShell = CreateObject("WScript.Shell") strComputer = objShell.ExpandEnvironmentStrings("%CLIENTNAME%") Set WshNetwork = WScript.CreateObject("WScript.Network") strCurrentUser=WshNetwork.Username Set objWMIService = GetObject("winmgmts:") Set colProcessbyNameAppli1 = objWMIService.ExecQuery("Select * from Win32_Process Where Name = " & strProcessAppli1) For Each objProcess in colProcessbyNameAppli1 colProperties = objProcess.GetOwner(strUsernameAppli1,strUserDomainAppli1) if strUsernameAppli1 = strCurrentUser then msgbox "Current owner - " & strUsernameAppli1 & " is already using the application!" strFoundProcessAppli1 = True Exit for End If Next If strFoundProcessAppli1 = False Then shell "C:\appli1.bat" End If Set AllProcess = nothing Sub shell(cmd) dim objShell Set objShell = WScript.CreateObject( "WScript.Shell" ) objShell.Run(cmd) Set objShell = Nothing end sub
Personne n'a d'idée???