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

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
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.
Est il possible que l'on soit obligé de mettre à jour cette table ??
J'espère avoir été clair.
Merci à tous