Bonjour j'ai fais le script ci-dessous qui recherche si il existe un raccourci sur le bureau d'un utilisateur en fonction du Path et du target de ce raccourci.
Par exemple ici je cherche le raccourci vers l'executable cmd.exe
Le problème est que j'ai l'impression que ce fameux Win32_ShortcutFile qui, si j'ai bien compris, est sensé contenir tout les raccourcis du pc. Or il ne trouve pas ceux de mon bureau et donc ici pas celui qui pointe vers cmd.exe.
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 '-- Test de la présence du fichier executable, s'il n'existe pas, pas besoin de lancer la copie du raccourci set filesys = CreateObject("Scripting.FileSystemObject") le_chemin_du_fichier = "C:\WINDOWS\system32\cmd.exe" if filesys.FileExists (le_chemin_du_fichier) then Wscript.Echo("le fichier existe, au boulot...") '-- Initialisation des variables --' Set WshShellObj = WScript.CreateObject("WScript.Shell") Set WshProcessEnv = WshShellObj.Environment("Process") '-- WshProcessEnv("USERNAME") donne le nom d'utilisateur '-- Remplacer les chemins par les chemins qui t'interesse Target = cible du raccourci et Path = le lieu ou est contenu ton raccourci (Exemple : c:\documents and settings\opsi\bureau\) '-- Attention de doubler les '\' !! User = WshProcessEnv("USERNAME") Target = "C:\WINDOWS\system32\cmd.exe" Path = "\Documents and Settings\" & User&"\Bureau\" '-- Lancement de la recherche strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ShortcutFile") '--initialisation du compteur i = 0 For Each objItem in colItems Wscript.Echo "Name: " & objItem.Name Wscript.Echo "Extension: " & objItem.Extension Wscript.Echo "Path: " & objItem.Path Wscript.Echo "Target: " & objItem.Target if objItem.Target = Target and objItem.Path =Path then i = i +1 'WScript.Sleep 500 Next '-- Dans le cas ou i = 0 alors le raccourci n'existe pas et donc on doit copier le raccourci sur le bureau if i = 0 then Wscript.Echo "le raccourci n'est pas présent" Const OverwriteExisting = True Set objFSO = CreateObject("Scripting.FileSystemObject") '--source = source du fichier à copier source = "c:\cmd.lnk" '-- destination de la copie destination = "c:\Documents and Settings\" & User & "\Bureau\cmd.lnk" objFSO.CopyFile source, destination Set objFSO = Nothing end if else Wscript.Echo "Raccourci déjà présent" end if '-- Fin du script
Est il possible que l'on soit obligé de mettre à jour cette table ??
J'espère avoir été clair.
Merci à tous
Partager