IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

ScriptVBS + OCS


Sujet :

VBScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Par défaut ScriptVBS + OCS
    Bonjour a tous,

    Je dois écrire un script vbs qui sera déployé par gpo sur les machines d'un parc et qui a pour but de :

    Vérifier si un fichier a pour extension .xml (ce fichier contient toute les informations sur une machine et il généré par ocspackager.exe) est présent. Si oui, vérifier qu'il n'est pas plus vieux que 6 mois, si il ne l'est pas le copier dans un dossier qui devra être créé et portant le nom de l'entreprise. Si le fichier est plus vieux que 6 mois le supprimer et lancer le OCS packager.exe pour généré le fichier .xml

    Jusqu’à maintenant avec le peu de connaissance que j'ai, j'ai pu ecri ceci :

    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
    Dim oFSO, fichierVbs, oF1, oF2
    Sub Run(ByVal sFile)
     
    Dim shell
    	Set shell = CreateObject("WScript.Shell")
        shell.Run Chr(34) & sFile & Chr(34), 1, false
        Set shell = Nothing
    End Sub
     
    Set oFSO = CreateObject("Scripting.FilesystemObject")
    fichierXml = "C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent\*.xml"
    if oFSO.FileExists(fichierVbs) then
    	Set oF1 = oFSO.GetFile(fichierVbs) ' Je vais chercher tout les informations sur le fichier
    	fromDate = oF1.dateCreated ' Je stock la date de création dans une variable pour la maethode DateDiff
    	toDate = Now  ' La date du moment ou est lancé le script
    	DiffTps = DateDiff("m", fromDate, toDate) ' Stock la valeur du mois pour l'utlisé dans la condition ci-dessous
    	if DiffTps > 6 then ' Si la date de création est sup a 6 mois alors je supprime le fichier et je lance l'ocspackager.exe qui générera un nouveau xml
    		oFSO.DeleteFile "C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent*.xml",True
    		oFSFO.DeleteFile "C:\Dropbox\Test"
    		Run "\\192.168.69.21\NETLOGON\ocspackage.exe"
    		oFSO.CopyFile "C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent\*.xml", "C:\DropBox\Test", True
     
    	else
    		 set oF2 = oFSO.CreateFolder ("C:\Dropbox\Test")
    		 oFSO.CopyFile "C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent\*.xml", "C:\Dropbox\Test", True' et je le copie 
    	end if
    else 
    	Run "\\192.168.69.21\NETLOGON\ocspackage.exe"
    	set oF2 = oFSO.CreateFolder ("C:\Dropbox\Test")
    	oFSO.CopyFile "C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent\*.xml", "C:\DropBox\Test", True
    end if
    J’espère ne pas vous avoir trop piqué les yeux , je vous remercie d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 386
    Par défaut
    Bonjour
    je ne suis pas un spécialiste mais il me semble qu'il y-a une confusion entre fichier et dossier.
    Je remarque aussi des redondances pour le nom complet des fichiers xml;
    alors qu'il est défini dans la variable "fichierXml" (laquelle peut être une constante).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Par défaut
    Bonjour,

    Merci pour la réponse. J'ai amélioré le script mais une nouvelle erreur est survenue. OCSinventory.exe lancé pas le script "ScriptOCS.bat" génère un fichier .xml qui a comme nom l'ordinateur et la date (SERVEURGLPI-2012-06-11-09-46-57.xml). J'utilise la méthode GetFile pour récupérer les attributs du fichier pour calculer la date de "péremption", mais la méthode GetFile refuse que je définisse le nom du fichier généré .xml par une "*". C'est très contraignant car ce script sera déployé par GPO du coup les xml auront des noms différents et compliqués. Donc si vous avez solution ça serait super

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    Dim oFSO, fichierVbs, f, wshell, dossierDB
    Const ForWriting = 2
      
    Set wshell = CreateObject("WScript.Shell")
    Set oFSO = CreateObject("Scripting.FilesystemObject")
    dossierDB = "C:\Documents and Settings\Administrateur\Bureau\apps\absys\EXPORTSOCS\Dropbox\Test" 
    fichierSev = "C:\ProgramData\OCS Inventory NG\Agent\*.xml"
    FichierXP = "C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent\*.xml"
    SysSev = "C:\ProgramData"
    SysXp = "C:\Documents and Settings\All Users\Application Data"
    
    if oFSO.FolderExists(SysSev) then ' Je test pour savoir si c'est un  seven en fonction de l'existence du dossier ProgramData
    	 
    	if oFSO.FileExists(fichierSev) then
    		
    		Set oF1 = oFSO.GetFile(fichierSev) ' Je vais chercher tout les informations sur le fichier
    		fromDate = oF1.dateCreated ' Je stock la date de création dans une variable pour la maethode DateDiff
    		toDate = Now  ' La date du moment ou est lancé le script
    		DiffTps = DateDiff("m", fromDate, toDate) ' Stock la valeur du mois pour l'utlisé dans la condition ci-dessous
    		
    		if DiffTps > 6 then ' Si la date de création est sup a 6 mois alors je supprime le fichier et je lance l'ocspackager.exe qui générera un nouveau xml
    			
    			oFSO.DeleteFile "C:\ProgramData\OCS Inventory NG\Agent\*.xml",True
    			wshell.run "\\192.168.69.21\apps\absys\scriptocs.bat"
    			Wscript.Sleep(2000) ' Une pause de 2sec pour laisser le script bat creer les fichiers necessaires à la suite du script.
    			oFSO.CopyFile "C:\ProgramData\OCS Inventory NG\Agent\*.xml", "\\192.168.69.21\apps\ABSYS\EXPORTSOCS\Dropbox\Test", True
    			
    		else
    			
    			Set f = oFSO.OpenTextFile("c:\Programmes\ocs.txt", ForWriting,true)
    			f.writeline("Analysé le " + Now + ".")
    			
    			
    		end if
    		
    	else 
    	
    		wshell.run "\\192.168.69.21\apps\absys\scriptocs.bat"
    		Wscript.Sleep(5000)
    		oFSO.CopyFile "C:\ProgramData\OCS Inventory NG\Agent\*.xml", "\\192.168.69.21\apps\ABSYS\EXPORTSOCS\Dropbox\Test", True
    	
    	end if
    	
    else 
    	
    	if ofso.FolderExists(sysxp) then ' Je test pour savoir si c'est un xp en fonction de l'existence du dossier Application Data
    		
    		if oFSO.FileExists(fichierxp) = false then
    		
    			oF1 = oFSo.GetFile(fichierxp) ' Recuperer les proprietés du fichier xml présent dans le dossier Agent.
    			fromDate = oF1.created ' stocker la valeur de la date de création
    			toDate = Now ' stocker la valeur de la date du systeme a l'instant ou s'execute le script
    			DiffTps = DateDiff("m", fromDate, toDate) ' Calcule la difference de mois entre la création et l'execution du script
    		
    			if Difftps > 6 then ' Si la difference est de + de 6 mois alors
    		
    				ofso.deletefile "C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent\*.xml" ' On supprime le vieux fichier
    				wshell.run "\\192.168.69.21\apps\absys\scriptocs.bat" ' On llance le script permettant d'en creer un nouveau
    				ofso.copyfile "C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent\*.xml", "\\192.168.69.21\apps\ABSYS\EXPORTSOCS\Dropbox\Test\*.xml", True ' On copie le xml fraichement crée dans dropbox
    			
    			else 
    			
    				Set f = oFSO.OpenTextFile("c:\ecr.txt", ForWriting,true)
    				f.writeline("Analysé le " + Now + ".")
    			
    			end if
    			
    		else
    			
    			wshell.run "\\192.168.69.21\apps\absys\scriptocs.bat"
    			Wscript.Sleep(5000)
    			oFSO.CopyFile "C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent\*.xml", "\\192.168.69.21\apps\ABSYS\EXPORTSOCS\Dropbox\Test", True
    			
    		end if
    		
    	end if
    
    end if
    Cordialement.

  4. #4
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 386
    Par défaut
    re bonjour
    A mon avis il faudrait lire le contenu du dossier "C:\ProgramData\OCS Inventory NG\Agent" avec une sélection sur l'extension "xml".

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Par défaut
    Okay, je vais trouver comment faire. Merci de l'astuce.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 163
    Par défaut
    Salut Fabien,

    Désolé, pas trop de temps en ce moment ...
    Bon je vois que tu as des bases, je te glisse le petit code source ci-dessous en espérant que ça t'aidera à comprendre à la méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim FileExt, Folder, FileName, System
     
    FileExt = LCase("xml") 'Extension recherchée
    Folder = "C:\ProgramData\OCS Inventory NG\Agent" 'Répertoire de recherche
     
    Set System = CreateObject("Scripting.FileSystemObject")
    For Each File In System.GetFolder(Folder).Files 'On parcours tous les fichiers du répertoire
            If Right(LCase(File.Name), 3) = FileExt Then 'On teste les 3 derniers caractères du nom du fichier
            FileName = File.Name 'Si identique à l'extension recherchée
    	MsgBox(FileName) 'On affiche le nom du fichier trouvé
            End If
    Next

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Par défaut
    Merci beaucoup, ton petit bout de code ma énormément aidé. Je finalise mon script et je le poste.

    Merci à vous.

Discussions similaires

  1. Migration d'une base OCS vers un autre OCS
    Par EasyYanou dans le forum Alimentation
    Réponses: 1
    Dernier message: 23/09/2007, 21h37
  2. Probleme Agent ocs
    Par neuneu1 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 19/09/2007, 14h38
  3. Agent OCS distant
    Par Digiduck dans le forum Développement
    Réponses: 3
    Dernier message: 27/06/2007, 20h14
  4. ocs inventory : Script d'installation silencieuse
    Par jojoe dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 12/06/2007, 15h51
  5. probleme serveur ocs
    Par sorari dans le forum Sécurité
    Réponses: 1
    Dernier message: 27/04/2007, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo