Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3002 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Suppression du fichier desktop.htt par VBS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Suppression du fichier desktop.htt par VBS

n°2005308
Ethor
Posté le 28-06-2010 à 14:57:55  profilanswer
 

Bonjour tout le monde,  
 
Je suis completement nouveau sur ce forum mais je le connais de réputation, je vais donc essayer d'expliquer au mieux mon problème.
 
Je vous expose mon problème :  
 
j'ai en charge des postes dans un domaine dans lequel des GPO s'appliquent sur les postes des utilisateurs les empechant de faire certaines opérations de modif du systeme.
Exemple : changer le fond d'ecran.
(Notre département ne dispose des autorisations pour modifier les GPO)
 
Il arrive que l'active desktop plante et pour le reinitialiser je peux entre autre supprimer/renommer le fichier desktop.htt qui se trouve dans %USERPROFILE%\Application Data\Microsoft\Internet Explorer\Desktop.htt
 
Je cherche au travers de VBS(dont je ne connaissais rien il y a deux semaines..) à lui retirer ses attributs cachés et systeme pour ensuite le supprimer.
Voici le code que j'ai constitué à partir de "sesame script" du site de Microsoft :  
 
 
Set WSHShell = WScript.CreateObject("WScript.Shell" )
set objFSO = createobject("scripting.filesystemobject" )
set objfile = objfso.getfile("%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Desktop.htt" )
 
if objfso.fileexists("%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Desktop.htt" ) Then
 
 objFSO.DeleteFile("%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Desktop.htt" )
        wscript.echo "Le fichier existe et a été supprimé"
 
else  
        wscript.echo " le fichier n'existe pas"
 WSHShell.Run "attrib.exe -s -h %USERPROFILE%\Application Data\Microsoft\Internet Explorer\Destkop.htt"
 objFSO.DeleteFile("%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Desktop.htt" )
 
 
end if
 
 
Mes problèmes sont les suivants :  
dans un terminal, attrib.exe -s -h %USERPROFILE%\Application Data\Microsoft\Internet Explorer\Destkop.htt me rend bien le fichier détectable et donc supprimable.
Mais au travers du script cela ne fonctionne pas.
 
Ne sachant pas si mon script est correct ou non, ais-je fait une erreur ?
 
je precise que ce script doit pouvoir s'adapter à n'importe quelle machine du parc d'ou l'utilisation (peut etre a tord) de %USERPROFILE% pour cibler le répertoire personnel de chaque utilisateur.
 
Merci d'avance pour vos réponses/conseils éventuels. :)
 

mood
Publicité
Posté le 28-06-2010 à 14:57:55  profilanswer
 

n°2005912
Ethor
Posté le 30-06-2010 à 09:00:00  profilanswer
 

petit up :)  
personne n'a une idée sous le coude ?

n°2005933
SuppotDeSa​Tante
Aka dje69r
Posté le 30-06-2010 à 09:45:24  profilanswer
 

Hello
 
Sous le coude, non rien :D
 
 
Il te faut definir le %USERPROFILE%
Si tu mets ca dans une chaine, bah... ca renvoit %USERPROFILE%
Toto="12+3" bah ca renvoit 12+3
Toto = 12+3 ca renvoit 15
 
Ensuite le code... Repeter 15 fois le chemin a ton fichier... C'est pas fait pour les chats les variables hein [:le colonel moutarde:5]  
Pis euh attrib juste pour tester si un fichier existe, c'est un peu comme se raser les poils pubiens a la tronçonneuse [:transparency]  
 
Aller, un petit coup de main, meme si en googlant ca se trouve en 2sc1/2 ;)

Code :
  1. Dim WshShell, sUserProfile,CheminFichier
  2. Set WshShell=CreateObject("WScript.Shell" )
  3. set objFSO = createobject("scripting.filesystemobject" )
  4. sUserProfile = WshShell.ExpandEnvironmentStrings("%USERPROFILE%" )
  5. CheminFichier = sUserProfile  & "\Application Data\Microsoft\Internet Explorer\Desktop.htt"
  6. if objFSO.fileexists(CheminFichier) Then
  7.         objFSO.DeleteFile(CheminFichier)
  8.         wscript.echo "Le fichier existe et a été supprimé"
  9. else 
  10.         Set ObjFile = objFSO.createtextFile(CheminFichier) 
  11.         objFSO.DeleteFile(CheminFichier)
  12.         wscript.echo " le fichier n'existe pas"
  13.  
  14. end if
  15. Set WshShell=Nothing
  16. Set objFSO = Nothing
  17. Set objfile = Nothing


Message édité par SuppotDeSaTante le 30-06-2010 à 09:54:37

---------------
Soyez malin, louez entre voisins !
n°2005972
Ethor
Posté le 30-06-2010 à 11:03:46  profilanswer
 


Super merci beaucoup!  
 
Pour les variables mon collègue m'a dit que je devais passer par la mais ne connaissant rien à la prog ca ne me disait rien du tout.
La je comprend mieux.
Dim les enonce et on les qualifie après si j'ai bien suivi.
 
ExpandEnvironmentStrings je ne connaissais pas mais c'est chose faite merci :)
 
Pour attrib ce n'etait pas pour vérifier que le fichier existe mais plus pour lui retirer ses attributs (h et s) qui je pensais empechaient la suppression du fichier.
 
Mais finalement c'est le %userprofile% non définit qui posait problème.
 
En revanche la partie en dessous de Else, je ne saisis pas tout.  
Pourquoi créer un fichier text et ensuite le supprimer (si c'est bien ce que fait le script) ?
Simplement faire la ligne 18 ne suffit-il pas?
 
enfin les lignes 24 25 et 26 me laisse perplexe. Est ce pour libérer la mémoire utiliser par les routines ou est ce pour autre chose?
 
En tout ca merci pour ce coup de main ;)
 
j'ai encore à bucher le vbs je suis loin de pouvoir faire ce que je veux avec..

n°2005984
SuppotDeSa​Tante
Aka dje69r
Posté le 30-06-2010 à 11:43:19  profilanswer
 

Ethor a écrit :


Super merci beaucoup!  
 
Pour les variables mon collègue m'a dit que je devais passer par la mais ne connaissant rien à la prog ca ne me disait rien du tout.
La je comprend mieux.
Dim les enonce et on les qualifie après si j'ai bien suivi.
Oui
 
ExpandEnvironmentStrings je ne connaissais pas mais c'est chose faite merci :)
De rien, bien pratique et indispensable pour recuperer les variables d'environnement
 
Pour attrib ce n'etait pas pour vérifier que le fichier existe mais plus pour lui retirer ses attributs (h et s) qui je pensais empechaient la suppression du fichier.
 
Mais finalement c'est le %userprofile% non définit qui posait problème.
Bah euh non, ton
set objfile = objfso.getfile("%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Desktop.htt" )
Ne peut que merder si le fichier n'existe pas, donc ton attrib n'aurait jamais fonctionner. Tu peux pas definir objfile si ton fichier n'existe pas. Dans le cas où le fichier n'existait pas, ton prog aurait planté, donc ne serait jamais passé dans le attrib. D'où ma reflexion.
 
 
En revanche la partie en dessous de Else, je ne saisis pas tout.  
Pourquoi créer un fichier text et ensuite le supprimer (si c'est bien ce que fait le script) ?
Simplement faire la ligne 18 ne suffit-il pas?
Si si. Car au debut on teste si le fichier existe, c'est donc qu'il n'existe pas.
Mais toi tu utilisais attrib pour jouer sur les propriétés du fichier, mais dans la condition ou il n'existe pas... :pt1cable:  
Je me suis dit que tu avais du code dans cette condition que tu n'avais pas mis ici, je t'ai juste donc mis un exemple de comment creer un fichier et de le supprimer.
Tu peux juste mettre en effet le message wscript.echo " le fichier n'existe pas"

 
enfin les lignes 24 25 et 26 me laisse perplexe. Est ce pour libérer la mémoire utiliser par les routines ou est ce pour autre chose?
Oui, pis c'est aussi une habitude que de liberer mes variables objets
En tout ca merci pour ce coup de main ;)
De rien :jap:
 
j'ai encore à bucher le vbs je suis loin de pouvoir faire ce que je veux avec..


Message édité par SuppotDeSaTante le 30-06-2010 à 11:53:01

---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Suppression du fichier desktop.htt par VBS

 

Sujets relatifs
lancer une classe depuis un fichier batSuppression valeur dans registre suivant une chaine de caractère
Copie automatique fichier excel à heure fixenumerotation croissante de commande pour fichier xml
Récupérer les notes (tonalité+vélocité+durée) d'un fichier MidiChargement d'un fichier .emx en JAVA sous Eclipse
ouverture d'un fichier en Ctester si un fichier à subit une modification
Rechercher un fichier dans les sous répertoiresvba stockage de résultats dans un fichier csv
Plus de sujets relatifs à : Suppression du fichier desktop.htt par VBS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR