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.

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
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
actuellement le code ne permet que l'ouverture unique de l'application j'ai commencé a chercher pour la 2nd application mais je bloque.

Personne n'a d'idée???