Nantes Hardware
Connectes toi !

Rejoignez le forum, c’est rapide et facile

Nantes Hardware
Connectes toi !
Nantes Hardware
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -25%
-100€ Barre de son Hisense Dolby Atmos 5.1.2
Voir le deal
299.99 €

Aide programme VB -> extraction liens icônes

5 participants

Page 1 sur 2 1, 2  Suivant

Aller en bas

Aide programme VB -> extraction liens icônes Empty Aide programme VB -> extraction liens icônes

Message par robin44 Lun 22 Déc 2008 - 15:45

Je ne sais pas si je suis dans la bonne section mais j'aurais besoin d'un petit coup de pouce si il y a des as de la programmation ici.

On m'a demandé au taf de trouver un moyen d'extraire tous les raccourcis (fichiers .lnk) se trouvant dans des arborescences et sous arbo donnés qui pointent vers des bases de données .mde et .mdb et de les mettre dans un fichier au format csv en indiquant l’emplacement et le nom du raccourci ; la propriété du raccourci qui indique ce qu’il exécute.

J'ai trouvé ça sur le net:

Set objShell = WScript.CreateObject("WScript.Shell" )
Path1 = objShell.SpecialFolders.Item("AllUsersDesktop" )
' Wscript.Echo "AllUsersDesktop:" & Path1
Set fso = CreateObject("Scripting.FileSystemObject" )
Set f = fso.GetFolder(Path1)
Set fc = f.Files
For Each f1 in fc
If (fso.GetExtensionName(f1) = "lnk" ) Then
Set myShortcut = objShell.CreateShortcut(f1.path)
WScript.Echo f1.name & "-->" & myShortcut.TargetPath
End If
Next

Path1 = objShell.SpecialFolders.Item("Desktop" )
'Wscript.Echo "Desktop:" & Path1
Set f = fso.GetFolder(Path1)
Set fc = f.Files
For Each f1 in fc
If (fso.GetExtensionName(f1) = "lnk" ) Then
Set myShortcut = objShell.CreateShortcut(f1.path)
WScript.Echo f1.name & "-->" & myShortcut.TargetPath
End If
Next

Merci d'avance.
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par yavka Lun 22 Déc 2008 - 15:56

Tu t'y connais ou pas en vbs ? C'est juste pour savoir s'il faut te donner une réponse détaillée ou non tongue
Il faut lister tous les raccourcis du poste, seulement ceux d'un lecteur ou bien seulement ceux sur les bureaux des users ?
yavka
yavka
NHFR member
NHFR member

Nombre de messages : 1023
Localisation : Nantes

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par robin44 Lun 22 Déc 2008 - 16:04

Je m'y connais un peu oui mais ça fait (trop) longtemps que j'ai pas développé. Pour répondre à ta question je dois lister les fichiers lnk de répertoires et de ses sous répertoires se trouvant sur des lecteurs réseaux (je sais faire ça en ligne de commande par contre mais ça me servira pas à grand chose pour la suite...)
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par monster Lun 22 Déc 2008 - 16:24

meme en ligne de commande ça peut marche pour creer le csv aussi
monster
monster
NHFR All Stars
NHFR All Stars

Nombre de messages : 9143
Localisation : sainte pazanne

http://www.yark.fr/

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par yavka Lun 22 Déc 2008 - 16:32

+1 Avec monster.

la propriété du raccourci qui indique ce qu’il exécute
C'est quoi ça ? Le paramètre passé au script ? Ex : "C:\MonProgramme.Exe MonParamètre1 MonParamètre2".

EDIT : Comment "formater" ton CSV ?

Emplacement, Nom, Cible ?
yavka
yavka
NHFR member
NHFR member

Nombre de messages : 1023
Localisation : Nantes

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par yavka Lun 22 Déc 2008 - 17:04

Petit détail qui a son importance ...
Pour répondre à ton problème, j'utilise WMI et Win32_ShortcutFile (c'est plus pratique pour avoir la cible ... Smile ) et avec WMI, tu sélectionnes un ordinateur : "." pour celui sur lequel s'exécute le script, sinon, il faut stipuler le nom ... Cela veut dire que si tu dois rechercher sur 10 machines, ça va être un peu le bordel (même si une boucle et un tableau simplifieront le tout ...).

Sinon, ton CSV il faut l'enregistrer où ? Ca t'irais s'il s'enregistre là ou s'exécute le script ?
yavka
yavka
NHFR member
NHFR member

Nombre de messages : 1023
Localisation : Nantes

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par robin44 Lun 22 Déc 2008 - 17:18

yavka a écrit:+1 Avec monster.

la propriété du raccourci qui indique ce qu’il exécute
C'est quoi ça ? Le paramètre passé au script ? Ex : "C:\MonProgramme.Exe MonParamètre1 MonParamètre2".

EDIT : Comment "formater" ton CSV ?

Emplacement, Nom, Cible ?

Oui c'est parfait ça Wink

yavka a écrit:Petit détail qui a son importance ...
Pour répondre à ton problème, j'utilise WMI et Win32_ShortcutFile (c'est plus pratique pour avoir la cible ... Smile ) et avec WMI, tu sélectionnes un ordinateur : "." pour celui sur lequel s'exécute le script, sinon, il faut stipuler le nom ... Cela veut dire que si tu dois rechercher sur 10 machines, ça va être un peu le bordel (même si une boucle et un tableau simplifieront le tout ...).

Sinon, ton CSV il faut l'enregistrer où ? Ca t'irais s'il s'enregistre là ou s'exécute le script ?

Je vais l'exécuter sur un ordinateur où les montages réseaux seront présents (3 pour être exact: P,Q et un autre M par exemple). Et oui très bien le résultat dans le même répertoire où est exécuté le programme Wink
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par yavka Lun 22 Déc 2008 - 18:09

Chuis pas très clair moi encore Very Happy

Win32_ShortcutFile permet de connaitre certaines propriétés d'un raccourci : Nom, Emplacement, Cible.
Le problème, c'est qu'un emplacement est forcément sur un disque local. Cela n'empêche pas de se "connecter" avec WMI à d'autres ordinateurs que le sien, par contre, un emplacement sera forcément local au pc examiné.

Exemple : Tu as un lecteur réseau "X:\" qui pointe vers "\\OrdinateurDistant\Partage" ou "Partage" correspond au dossier "J:\Partage" de "OrdinateurDistant". Et bien l'emplacement d'un raccourci dans ce dossier sera "J:\Partage\Raccourci.Lnk" et non pas "X:\Raccourci.Lnk" Sad

Je ne connais pas autre chose que Win32_ShortcutFile pour trouver la cible d'un raccourci Sad
yavka
yavka
NHFR member
NHFR member

Nombre de messages : 1023
Localisation : Nantes

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par robin44 Lun 22 Déc 2008 - 18:22

Si la difficulté est seulement l'emplacement local alors dans ce cas laisses tomber les lecteurs réseaux, chemins UNC etc... j'exécuterais directement le prog en local sur le serveur qui fait ce partage Wink
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par monster Lun 22 Déc 2008 - 19:20

sinon passer a linux Very Happy
monster
monster
NHFR All Stars
NHFR All Stars

Nombre de messages : 9143
Localisation : sainte pazanne

http://www.yark.fr/

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par yavka Lun 22 Déc 2008 - 20:30

Voilà donc, brut de fonderie (Sans explication à l'intérieur), le script que je te propose de lancer depuis n'importe quel PC. Attention, remplace dans la première ligne la chaine "PC_A_Examiner" par le nom du pc. Il faut absolument mettre entre guillemet. Le nom du CSV est identique au VBS (sauf l'extension Smile ). S'il en existe déjà un, il le renomme en .SAV et en cré un nouveau.
Le script s'arrête en cas d'erreur (Absence de la mention On Error Resume Next). Si tu as un message avec la ligne "Erreur : Permission refusée" c'est soit parceque le script est déjà en cours d'exécution, soit parceque le CSV est déjà ouvert.

Code:
strComputer = "PC_A_Examiner"
Set Fso = CreateObject("scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ShortcutFile")

FichierCsv = Fso.BuildPath (Fso.GetParentFolderName(Wscript.scriptFullName),Left (Wscript.scriptName, InStr(Wscript.scriptName, ".")-1)&".csv")

If Fso.FileExists(FichierCSV) Then
   OldCsv = Left(FichierCSV, InStr(FichierCSV,".csv"))&"sav"
   If Fso.FileExists(OldCsv) Then Fso.DeleteFile OldCsv
   Fso.MoveFile FichierCSV, OldCsv
   End If

Set FicSortie = Fso.OpenTextFile(FichierCSV, 2, True)

If Err.Number <> 0 Then Wscript.Quit
   For Each objItem In colItems
      If Ucase(Right (objItem.Target, 3)) = "MDB" OR Ucase(Right (objItem.Target, 3)) = "MDE" Then
         WriteLine Left (objItem.Caption,2) & objItem.Path & ", " & objItem.FileName & ", " & objItem.Target, FicSortie
         End If
      Next

MsgBox "Traitement terminé."

Function WriteLine(ByVal strMessage, ByVal objFile)
   On Error Resume Next
   If IsObject(objFile) then
      objFile.WriteLine strMessage
   Else
      Call Wscript.Echo("Impossible de loguer : " & strMessage )
   End If
   End Function
yavka
yavka
NHFR member
NHFR member

Nombre de messages : 1023
Localisation : Nantes

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par robin44 Lun 22 Déc 2008 - 20:33

ouah super merci, j'essaierais ça demain et je te dirais ce que ça donne Wink
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par yavka Lun 22 Déc 2008 - 20:38

Oki ! Au fait, chuis en vacances depuis 17h, je surferais peut-être moins les jours prochain. Je garde ma fille 🕷
J'ai oublié de préciser que quand le script est terminé, il y a un message à l'écran Wink
yavka
yavka
NHFR member
NHFR member

Nombre de messages : 1023
Localisation : Nantes

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par robin44 Mar 23 Déc 2008 - 13:39

Bon voici les nouvelles. Çà fonctionne mais j'ai un message d'erreur sur un des serveurs où j'exécute le script:

Aide programme VB -> extraction liens icônes Erreur10

Que faire Sad
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par Remuald Mar 23 Déc 2008 - 13:50

c'est un problème de communication sur le réseau visiblement Wink
Remuald
Remuald
Coadmin
Coadmin

Nombre de messages : 31630
Localisation : anywhere

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par robin44 Mar 23 Déc 2008 - 13:53

Bah non je l'exécute en local puis ça bloque toujours à la même ligne dans le fichier Excel qui se construit bien. J'ai comme l'impression qu'il y a un caractère spécial rencontré par exemple qui met la grouille ou alors c'est un problème de droits d'accès à un moment donné !
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par Remuald Mar 23 Déc 2008 - 14:26

ça correspond à cette ligne là d'après l'erreur :
Code:
(objItem.Target, 3)) = "MDE" Then
Remuald
Remuald
Coadmin
Coadmin

Nombre de messages : 31630
Localisation : anywhere

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par yavka Mar 23 Déc 2008 - 15:01

Non, en fait la ligne 21, c'est la fin de la boucle qui liste les propriétés de chaque raccourcis (Next) (Si tu as bien conservé les lignes blanches, parceque comme j'indente le texte, il n'y a rien normalement qui commence au caractère 7 mais que au 0,5,10 etc.).

En dessous de la ligne " For Each objItem In colItems" ajoute un
On Error Resume Next afin que le script continu même en cas d'erreur dans la boucle. Si tu as toujours l'erreur, ajoute la ligne en tout début de script.

Si tu le lance sur chacun des serveurs, à ce moment là, tu peux mettre strComputer = "." en première ligne. Sinon, si tu dois le faire sur de nombreux serveur, on peut modifier le script pour indiquer tous les serveurs et analyser chacun. Par contre, dans le CSV, il faudra ajouter une ligne à chaque fois que l'on passera d'un serveur à l'autre.

Sinon, une erreur sur le RPC c'est un peu louche ... tu ne serais pas sur un contrôleur de domaine Smile

Dernier point : si on ne s'arrête plus sur erreur, peut être que la liste des raccourcis ne sera pas exhaustive Sad

P.S. : on utilise aussi le RPC pour se connecter à soi même si je ne me trompe pas cyclops
yavka
yavka
NHFR member
NHFR member

Nombre de messages : 1023
Localisation : Nantes

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par robin44 Mar 23 Déc 2008 - 15:13

Merci beaucoup pour tout ça yavka et non je ne suis pas sur un Contrôleur de domaine Very Happy

Par contre je t'en devrais une pour le service rendu Wink
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par robin44 Mar 23 Déc 2008 - 16:21

Bon et bien c'est pas mieux. Du coup plus de message d'erreur mais il me dit "Traitement terminé" alors qu'il a pas fini en fait Sad

Je pense qu'il faudrait rajouter un fichier de log au format texte qui recense tous les fichiers lnk scannés. Cela me permettrait peut-être de voir ce qui bloque...
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par zekroustibat Mar 23 Déc 2008 - 17:39

Code:
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ShortcutFile")
..........
      If Ucase(Right (objItem.Target, 3)) = "MDB" OR Ucase(Right (objItem.Target, 3)) = "MDE" Then

Bonjour,
Ce script ne cherche que les fichiers de type .lnk qui contiennent MDB et MDE dans le nom. Si tu as des fichiers .lnk qui pointent vers une base mais dont le nom n'est pas *MDB ou *MDE, il ne les trouvera pas, ainsi que ceux qui se trouvent dans le répertoire ou tu lances le script.
zekroustibat
zekroustibat
Visiteur

Nombre de messages : 97
Localisation : nantes centre

http://zekroustibat.blogspot.fr

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par yavka Mar 23 Déc 2008 - 18:24

Bonjour zekroustibat,

zekroustibat a écrit:Ce script ne cherche que les fichiers de type .lnk
Voui (Win32_ShortcutFile) !

zekroustibat a écrit:qui contiennent MDB et MDE dans le nom
Pas tout à fait. Dont la cible (objItem.Target) contient MDB ou MDE.

zekroustibat a écrit:Si tu as des fichiers .lnk qui pointent vers une base mais dont le nom n'est pas *MDB ou *MDE, il ne les trouvera pas
bah euh ... on n'en veut pas confused

zekroustibat a écrit:ainsi que ceux qui se trouvent dans le répertoire ou tu lances le script.
Ah bon ? Perso, j'ai créé un fichier texte vide et j'ai mis l'extension "mdb". Clic droit dessus puis créer un raccourci et enfin je lance le script (dans le même dossier) : ca fonctionne !
yavka
yavka
NHFR member
NHFR member

Nombre de messages : 1023
Localisation : Nantes

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par yavka Mar 23 Déc 2008 - 18:30

robin44 a écrit:Je pense qu'il faudrait rajouter un fichier de log au format texte qui recense tous les fichiers lnk scannés. Cela me permettrait peut-être de voir ce qui bloque...
Pour ne pas trop toucher au script, il suffit de supprimer les lignes 18 et 20 :
Code:
      If Ucase(Right (objItem.Target, 3)) = "MDB" OR Ucase(Right (objItem.Target, 3)) = "MDE" Then
Code:
   End If
Du coup, il va te chercher tous les raccourcis (ligne 19)! Par contre, l'ordre de sortie est obscure ... Il y a quelques choses ou pas dans le CSV ?

Si ca "déconne" trop, je peux en faire un plus complexe mais ca attendra Lundi parceque là veille de fêtes drunken Sleep ça va pas être facile Smile

As tu redémarrer ce serveur récemment ? (Sans doute que oui puisque c'est un Windows lol! ) Il est sous quel version d'OS ?
yavka
yavka
NHFR member
NHFR member

Nombre de messages : 1023
Localisation : Nantes

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par zekroustibat Mar 23 Déc 2008 - 19:05

zekroustibat a écrit:Si tu as des fichiers .lnk qui pointent vers une base mais dont le nom n'est pas *MDB ou *MDE, il ne les trouvera pas
Code:
bah euh ... on n'en veut pas  :confused:

Code:
On m'a demandé au taf de trouver un moyen d'extraire tous les raccourcis (fichiers .lnk) se trouvant dans des arborescences et sous arbo donnés qui pointent vers des bases de données .mde et .mdb

Bin si il les veut.
objItem.Target n'a pas l'air de fonctionner pour tous les liens....

zekroustibat a écrit:ainsi que ceux qui se trouvent dans le répertoire ou tu lances le script.
Code:
Ah bon ? Perso, j'ai créé un fichier texte vide et j'ai mis l'extension "mdb". Clic droit dessus puis créer un raccourci et enfin je lance le script (dans le même dossier) : ca fonctionne !
Pas chez moi si placé sur le bureau
zekroustibat
zekroustibat
Visiteur

Nombre de messages : 97
Localisation : nantes centre

http://zekroustibat.blogspot.fr

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par robin44 Mar 23 Déc 2008 - 19:51

Hey les gars ne vous prenez pas trop la tête pour moi hein puis pas e problèmes ça attendra le 5 Janvier puisque demain-midi je suis en congés Razz
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Aide programme VB -> extraction liens icônes Empty Re: Aide programme VB -> extraction liens icônes

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum