oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
cette ligne supprimait la lettre T, du coup le format n etait pas bon voi ci ma ligne
arrGPO (2) = Left (oXml.getElementsByTagName ("ModifiedTime")(0).text,
WScript.Echo "Backup ID : " & oFolder.Name & " (deleted)"
au dessus de
oFolder.Delete (True)
"Jean-Luc" a écrit dans le message de
news:
| Bonjour,
Bonsoir,
| Y a t il moyen de consulter le gpreport.xml de chaque
| GPO afin de consulter les champs <name> et <modified time> ?
| Pour supprimer les doublons c'est à dire : les
| dossiers dont le fichier xml a ces 2 champs identiques ?
Ci-dessous le script VBScript 'purgeBackupFolder.vbs' permettant de
supprimer les dossiers "Backup Id" obsolètes. Ce script pourra
s'exécuter après une sauvegarde totale des gpo réalisée via gpmc ou
backupAllGpos.wsf dans le but visant à faire le "ménage" du réperto ire
de sauvegarde (i.e suppression des doublons)
+++ Environnement de test
GPMC SP1
XP SP1/SP2 W2K3 SP1
+++ Pré requis
Internet Explorer 5.x (Parser XMLDOM)
Contrôle total sur les objets gpo
Contrôle total sur les dossiers des sauvegardes
+++ Usage
>cscript purgeBackupFolder.vbs <dossier_de_backup_des_gpo>
+++ Exemple
>cscript purgeBackupFolder.vbs C:gpmcbackup
--- Coupez ici : purgeBackupFolder.vbs ---
Option Explicit
' déclaration des variables
Dim oXml, oFs, oDic, oRootFolder, oFolder
Dim colFolders
Dim arrGPO (5), arrTemp
Dim strGPOId, strKey, strBackupFolder
Dim bBackup
' lecture du dossier racine passé comme argument
' ce dossier contient les backup id
strBackupFolder = WScript.Arguments (0)
' initialisation des objets
set oXml = CreateObject("Microsoft.XMLDOM")
set oFS = CreateObject ("Scripting.FileSystemObject")
Set oDic = CreateObject ("Scripting.Dictionary")
' ouverture du dossier racine
Set oRootFolder = oFs.GetFolder (strBackupFolder)
' lecture des sous dossiers (backup id)
Set colFolders = oRootFolder.SubFolders
' énumération des backup id
For Each oFolder In ColFolders
' chargement du fichier xml propre à la sauvegarde
' le fichier gpreport.xml est automatiquement généré
' lors de la sauvegarde de la gpo
oXml.Asyncúlse
oXml.Load (strBackupFolder & _
"" & oFolder.Name & _
"" & "GPReport.xml")
' lecture des valeurs xml via le parser
strGPOId = oXml.getElementsByTagName ("Identifier")(1).text
arrGPO (0) = oXml.getElementsByTagName ("Name")(0).text
arrGPO (1) = oFolder.Name
arrGPO (2) = Replace ( _
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
' calcul d'un timestamp Epoch
arrGPO (3) = DateDiff ("S", "1970-01-01", arrGPO (2))
arrGPO (4) = oFolder.DateCreated
' stockage des valeurs xml dans un hash
If Not oDic.Exists (strGPOId) Then
oDic (strGPOId) = Join (arrGPO, "~")
Else
' la gpo a déjà été sauvegardée (doublon)
' la plus récente "gagne"
' utilisation du timestamp calculé précédemment
arrTemp = Split (oDic (strGPOId), "~")
If CLng (arrGPO (3)) > CLng (arrTemp (3)) Then
oDic (strGPOId) = Join (arrGPO, "~")
End If
End If
Next
' les sauvegardes les plus récentes sont stockées dans le hash
' suppression des backup obsolètes et affichage du résumé
For Each oFolder In colFolders
bBackup = False
For Each strKey In oDic.Keys
arrTemp = Split (oDic (strKey), "~")
If arrTemp (1) = oFolder.Name Then
WScript.Echo "GPO ID : " & strkey
WScript.Echo "Modified : " & arrTemp (2)
WScript.Echo "GPO Name : " & arrTemp (0)
WScript.Echo "Backup ID : " & arrTemp (1)
WScript.Echo "Timestamp : " & arrTemp (4)
WScript.Echo ""
bBackup = True
Exit For
End If
Next
If bBackup = False Then
' le backup est obsolète
' suppression du sous dossier (backup id)
oFolder.Delete (True)
WScript.Echo "Backup ID : " & oFolder.Name & " (deleted)"
WScript.Echo ""
End If
Next
--- Coupez ici : purgeBackupFolder.vbs ---
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
cette ligne supprimait la lettre T, du coup le format n etait pas bon voi ci ma ligne
arrGPO (2) = Left (oXml.getElementsByTagName ("ModifiedTime")(0).text,
WScript.Echo "Backup ID : " & oFolder.Name & " (deleted)"
au dessus de
oFolder.Delete (True)
"Jean-Luc" <tual_jl@hotmail.com> a écrit dans le message de
news:1159358111.588204.167050@i3g2000cwc.googlegroups.com
| Bonjour,
Bonsoir,
| Y a t il moyen de consulter le gpreport.xml de chaque
| GPO afin de consulter les champs <name> et <modified time> ?
| Pour supprimer les doublons c'est à dire : les
| dossiers dont le fichier xml a ces 2 champs identiques ?
Ci-dessous le script VBScript 'purgeBackupFolder.vbs' permettant de
supprimer les dossiers "Backup Id" obsolètes. Ce script pourra
s'exécuter après une sauvegarde totale des gpo réalisée via gpmc ou
backupAllGpos.wsf dans le but visant à faire le "ménage" du réperto ire
de sauvegarde (i.e suppression des doublons)
+++ Environnement de test
GPMC SP1
XP SP1/SP2 W2K3 SP1
+++ Pré requis
Internet Explorer 5.x (Parser XMLDOM)
Contrôle total sur les objets gpo
Contrôle total sur les dossiers des sauvegardes
+++ Usage
>cscript purgeBackupFolder.vbs <dossier_de_backup_des_gpo>
+++ Exemple
>cscript purgeBackupFolder.vbs C:gpmcbackup
--- Coupez ici : purgeBackupFolder.vbs ---
Option Explicit
' déclaration des variables
Dim oXml, oFs, oDic, oRootFolder, oFolder
Dim colFolders
Dim arrGPO (5), arrTemp
Dim strGPOId, strKey, strBackupFolder
Dim bBackup
' lecture du dossier racine passé comme argument
' ce dossier contient les backup id
strBackupFolder = WScript.Arguments (0)
' initialisation des objets
set oXml = CreateObject("Microsoft.XMLDOM")
set oFS = CreateObject ("Scripting.FileSystemObject")
Set oDic = CreateObject ("Scripting.Dictionary")
' ouverture du dossier racine
Set oRootFolder = oFs.GetFolder (strBackupFolder)
' lecture des sous dossiers (backup id)
Set colFolders = oRootFolder.SubFolders
' énumération des backup id
For Each oFolder In ColFolders
' chargement du fichier xml propre à la sauvegarde
' le fichier gpreport.xml est automatiquement généré
' lors de la sauvegarde de la gpo
oXml.Async=False
oXml.Load (strBackupFolder & _
"" & oFolder.Name & _
"" & "GPReport.xml")
' lecture des valeurs xml via le parser
strGPOId = oXml.getElementsByTagName ("Identifier")(1).text
arrGPO (0) = oXml.getElementsByTagName ("Name")(0).text
arrGPO (1) = oFolder.Name
arrGPO (2) = Replace ( _
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
' calcul d'un timestamp Epoch
arrGPO (3) = DateDiff ("S", "1970-01-01", arrGPO (2))
arrGPO (4) = oFolder.DateCreated
' stockage des valeurs xml dans un hash
If Not oDic.Exists (strGPOId) Then
oDic (strGPOId) = Join (arrGPO, "~")
Else
' la gpo a déjà été sauvegardée (doublon)
' la plus récente "gagne"
' utilisation du timestamp calculé précédemment
arrTemp = Split (oDic (strGPOId), "~")
If CLng (arrGPO (3)) > CLng (arrTemp (3)) Then
oDic (strGPOId) = Join (arrGPO, "~")
End If
End If
Next
' les sauvegardes les plus récentes sont stockées dans le hash
' suppression des backup obsolètes et affichage du résumé
For Each oFolder In colFolders
bBackup = False
For Each strKey In oDic.Keys
arrTemp = Split (oDic (strKey), "~")
If arrTemp (1) = oFolder.Name Then
WScript.Echo "GPO ID : " & strkey
WScript.Echo "Modified : " & arrTemp (2)
WScript.Echo "GPO Name : " & arrTemp (0)
WScript.Echo "Backup ID : " & arrTemp (1)
WScript.Echo "Timestamp : " & arrTemp (4)
WScript.Echo ""
bBackup = True
Exit For
End If
Next
If bBackup = False Then
' le backup est obsolète
' suppression du sous dossier (backup id)
oFolder.Delete (True)
WScript.Echo "Backup ID : " & oFolder.Name & " (deleted)"
WScript.Echo ""
End If
Next
--- Coupez ici : purgeBackupFolder.vbs ---
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
cette ligne supprimait la lettre T, du coup le format n etait pas bon voi ci ma ligne
arrGPO (2) = Left (oXml.getElementsByTagName ("ModifiedTime")(0).text,
WScript.Echo "Backup ID : " & oFolder.Name & " (deleted)"
au dessus de
oFolder.Delete (True)
"Jean-Luc" a écrit dans le message de
news:
| Bonjour,
Bonsoir,
| Y a t il moyen de consulter le gpreport.xml de chaque
| GPO afin de consulter les champs <name> et <modified time> ?
| Pour supprimer les doublons c'est à dire : les
| dossiers dont le fichier xml a ces 2 champs identiques ?
Ci-dessous le script VBScript 'purgeBackupFolder.vbs' permettant de
supprimer les dossiers "Backup Id" obsolètes. Ce script pourra
s'exécuter après une sauvegarde totale des gpo réalisée via gpmc ou
backupAllGpos.wsf dans le but visant à faire le "ménage" du réperto ire
de sauvegarde (i.e suppression des doublons)
+++ Environnement de test
GPMC SP1
XP SP1/SP2 W2K3 SP1
+++ Pré requis
Internet Explorer 5.x (Parser XMLDOM)
Contrôle total sur les objets gpo
Contrôle total sur les dossiers des sauvegardes
+++ Usage
>cscript purgeBackupFolder.vbs <dossier_de_backup_des_gpo>
+++ Exemple
>cscript purgeBackupFolder.vbs C:gpmcbackup
--- Coupez ici : purgeBackupFolder.vbs ---
Option Explicit
' déclaration des variables
Dim oXml, oFs, oDic, oRootFolder, oFolder
Dim colFolders
Dim arrGPO (5), arrTemp
Dim strGPOId, strKey, strBackupFolder
Dim bBackup
' lecture du dossier racine passé comme argument
' ce dossier contient les backup id
strBackupFolder = WScript.Arguments (0)
' initialisation des objets
set oXml = CreateObject("Microsoft.XMLDOM")
set oFS = CreateObject ("Scripting.FileSystemObject")
Set oDic = CreateObject ("Scripting.Dictionary")
' ouverture du dossier racine
Set oRootFolder = oFs.GetFolder (strBackupFolder)
' lecture des sous dossiers (backup id)
Set colFolders = oRootFolder.SubFolders
' énumération des backup id
For Each oFolder In ColFolders
' chargement du fichier xml propre à la sauvegarde
' le fichier gpreport.xml est automatiquement généré
' lors de la sauvegarde de la gpo
oXml.Asyncúlse
oXml.Load (strBackupFolder & _
"" & oFolder.Name & _
"" & "GPReport.xml")
' lecture des valeurs xml via le parser
strGPOId = oXml.getElementsByTagName ("Identifier")(1).text
arrGPO (0) = oXml.getElementsByTagName ("Name")(0).text
arrGPO (1) = oFolder.Name
arrGPO (2) = Replace ( _
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
' calcul d'un timestamp Epoch
arrGPO (3) = DateDiff ("S", "1970-01-01", arrGPO (2))
arrGPO (4) = oFolder.DateCreated
' stockage des valeurs xml dans un hash
If Not oDic.Exists (strGPOId) Then
oDic (strGPOId) = Join (arrGPO, "~")
Else
' la gpo a déjà été sauvegardée (doublon)
' la plus récente "gagne"
' utilisation du timestamp calculé précédemment
arrTemp = Split (oDic (strGPOId), "~")
If CLng (arrGPO (3)) > CLng (arrTemp (3)) Then
oDic (strGPOId) = Join (arrGPO, "~")
End If
End If
Next
' les sauvegardes les plus récentes sont stockées dans le hash
' suppression des backup obsolètes et affichage du résumé
For Each oFolder In colFolders
bBackup = False
For Each strKey In oDic.Keys
arrTemp = Split (oDic (strKey), "~")
If arrTemp (1) = oFolder.Name Then
WScript.Echo "GPO ID : " & strkey
WScript.Echo "Modified : " & arrTemp (2)
WScript.Echo "GPO Name : " & arrTemp (0)
WScript.Echo "Backup ID : " & arrTemp (1)
WScript.Echo "Timestamp : " & arrTemp (4)
WScript.Echo ""
bBackup = True
Exit For
End If
Next
If bBackup = False Then
' le backup est obsolète
' suppression du sous dossier (backup id)
oFolder.Delete (True)
WScript.Echo "Backup ID : " & oFolder.Name & " (deleted)"
WScript.Echo ""
End If
Next
--- Coupez ici : purgeBackupFolder.vbs ---
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
arrGPO (2) = Replace ( _
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
par
"Jean-Luc" a écrit dans le message de
news:
| Bonjour,
Bonsoir,
| Y a t il moyen de consulter le gpreport.xml de chaque
| GPO afin de consulter les champs <name> et <modified time> ?
| Pour supprimer les doublons c'est à dire : les
| dossiers dont le fichier xml a ces 2 champs identiques ?
Ci-dessous le script VBScript 'purgeBackupFolder.vbs' permettant de
supprimer les dossiers "Backup Id" obsolètes. Ce script pourra
s'exécuter après une sauvegarde totale des gpo réalisée via gpmc ou
backupAllGpos.wsf dans le but visant à faire le "ménage" du réperto ire
de sauvegarde (i.e suppression des doublons)
+++ Environnement de test
GPMC SP1
XP SP1/SP2 W2K3 SP1
+++ Pré requis
Internet Explorer 5.x (Parser XMLDOM)
Contrôle total sur les objets gpo
Contrôle total sur les dossiers des sauvegardes
+++ Usage
>cscript purgeBackupFolder.vbs <dossier_de_backup_des_gpo>
+++ Exemple
>cscript purgeBackupFolder.vbs C:gpmcbackup
--- Coupez ici : purgeBackupFolder.vbs ---
Option Explicit
' déclaration des variables
Dim oXml, oFs, oDic, oRootFolder, oFolder
Dim colFolders
Dim arrGPO (5), arrTemp
Dim strGPOId, strKey, strBackupFolder
Dim bBackup
' lecture du dossier racine passé comme argument
' ce dossier contient les backup id
strBackupFolder = WScript.Arguments (0)
' initialisation des objets
set oXml = CreateObject("Microsoft.XMLDOM")
set oFS = CreateObject ("Scripting.FileSystemObject")
Set oDic = CreateObject ("Scripting.Dictionary")
' ouverture du dossier racine
Set oRootFolder = oFs.GetFolder (strBackupFolder)
' lecture des sous dossiers (backup id)
Set colFolders = oRootFolder.SubFolders
' énumération des backup id
For Each oFolder In ColFolders
' chargement du fichier xml propre à la sauvegarde
' le fichier gpreport.xml est automatiquement généré
' lors de la sauvegarde de la gpo
oXml.Asyncúlse
oXml.Load (strBackupFolder & _
"" & oFolder.Name & _
"" & "GPReport.xml")
' lecture des valeurs xml via le parser
strGPOId = oXml.getElementsByTagName ("Identifier")(1).text
arrGPO (0) = oXml.getElementsByTagName ("Name")(0).text
arrGPO (1) = oFolder.Name
arrGPO (2) = Replace ( _
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
' calcul d'un timestamp Epoch
arrGPO (3) = DateDiff ("S", "1970-01-01", arrGPO (2))
arrGPO (4) = oFolder.DateCreated
' stockage des valeurs xml dans un hash
If Not oDic.Exists (strGPOId) Then
oDic (strGPOId) = Join (arrGPO, "~")
Else
' la gpo a déjà été sauvegardée (doublon)
' la plus récente "gagne"
' utilisation du timestamp calculé précédemment
arrTemp = Split (oDic (strGPOId), "~")
If CLng (arrGPO (3)) > CLng (arrTemp (3)) Then
oDic (strGPOId) = Join (arrGPO, "~")
End If
End If
Next
' les sauvegardes les plus récentes sont stockées dans le hash
' suppression des backup obsolètes et affichage du résumé
For Each oFolder In colFolders
bBackup = False
For Each strKey In oDic.Keys
arrTemp = Split (oDic (strKey), "~")
If arrTemp (1) = oFolder.Name Then
WScript.Echo "GPO ID : " & strkey
WScript.Echo "Modified : " & arrTemp (2)
WScript.Echo "GPO Name : " & arrTemp (0)
WScript.Echo "Backup ID : " & arrTemp (1)
WScript.Echo "Timestamp : " & arrTemp (4)
WScript.Echo ""
bBackup = True
Exit For
End If
Next
If bBackup = False Then
' le backup est obsolète
' suppression du sous dossier (backup id)
oFolder.Delete (True)
WScript.Echo "Backup ID : " & oFolder.Name & " (deleted)"
WScript.Echo ""
End If
Next
--- Coupez ici : purgeBackupFolder.vbs ---
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
arrGPO (2) = Replace ( _
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
par
"Jean-Luc" <tual_jl@hotmail.com> a écrit dans le message de
news:1159358111.588204.167050@i3g2000cwc.googlegroups.com
| Bonjour,
Bonsoir,
| Y a t il moyen de consulter le gpreport.xml de chaque
| GPO afin de consulter les champs <name> et <modified time> ?
| Pour supprimer les doublons c'est à dire : les
| dossiers dont le fichier xml a ces 2 champs identiques ?
Ci-dessous le script VBScript 'purgeBackupFolder.vbs' permettant de
supprimer les dossiers "Backup Id" obsolètes. Ce script pourra
s'exécuter après une sauvegarde totale des gpo réalisée via gpmc ou
backupAllGpos.wsf dans le but visant à faire le "ménage" du réperto ire
de sauvegarde (i.e suppression des doublons)
+++ Environnement de test
GPMC SP1
XP SP1/SP2 W2K3 SP1
+++ Pré requis
Internet Explorer 5.x (Parser XMLDOM)
Contrôle total sur les objets gpo
Contrôle total sur les dossiers des sauvegardes
+++ Usage
>cscript purgeBackupFolder.vbs <dossier_de_backup_des_gpo>
+++ Exemple
>cscript purgeBackupFolder.vbs C:gpmcbackup
--- Coupez ici : purgeBackupFolder.vbs ---
Option Explicit
' déclaration des variables
Dim oXml, oFs, oDic, oRootFolder, oFolder
Dim colFolders
Dim arrGPO (5), arrTemp
Dim strGPOId, strKey, strBackupFolder
Dim bBackup
' lecture du dossier racine passé comme argument
' ce dossier contient les backup id
strBackupFolder = WScript.Arguments (0)
' initialisation des objets
set oXml = CreateObject("Microsoft.XMLDOM")
set oFS = CreateObject ("Scripting.FileSystemObject")
Set oDic = CreateObject ("Scripting.Dictionary")
' ouverture du dossier racine
Set oRootFolder = oFs.GetFolder (strBackupFolder)
' lecture des sous dossiers (backup id)
Set colFolders = oRootFolder.SubFolders
' énumération des backup id
For Each oFolder In ColFolders
' chargement du fichier xml propre à la sauvegarde
' le fichier gpreport.xml est automatiquement généré
' lors de la sauvegarde de la gpo
oXml.Async=False
oXml.Load (strBackupFolder & _
"" & oFolder.Name & _
"" & "GPReport.xml")
' lecture des valeurs xml via le parser
strGPOId = oXml.getElementsByTagName ("Identifier")(1).text
arrGPO (0) = oXml.getElementsByTagName ("Name")(0).text
arrGPO (1) = oFolder.Name
arrGPO (2) = Replace ( _
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
' calcul d'un timestamp Epoch
arrGPO (3) = DateDiff ("S", "1970-01-01", arrGPO (2))
arrGPO (4) = oFolder.DateCreated
' stockage des valeurs xml dans un hash
If Not oDic.Exists (strGPOId) Then
oDic (strGPOId) = Join (arrGPO, "~")
Else
' la gpo a déjà été sauvegardée (doublon)
' la plus récente "gagne"
' utilisation du timestamp calculé précédemment
arrTemp = Split (oDic (strGPOId), "~")
If CLng (arrGPO (3)) > CLng (arrTemp (3)) Then
oDic (strGPOId) = Join (arrGPO, "~")
End If
End If
Next
' les sauvegardes les plus récentes sont stockées dans le hash
' suppression des backup obsolètes et affichage du résumé
For Each oFolder In colFolders
bBackup = False
For Each strKey In oDic.Keys
arrTemp = Split (oDic (strKey), "~")
If arrTemp (1) = oFolder.Name Then
WScript.Echo "GPO ID : " & strkey
WScript.Echo "Modified : " & arrTemp (2)
WScript.Echo "GPO Name : " & arrTemp (0)
WScript.Echo "Backup ID : " & arrTemp (1)
WScript.Echo "Timestamp : " & arrTemp (4)
WScript.Echo ""
bBackup = True
Exit For
End If
Next
If bBackup = False Then
' le backup est obsolète
' suppression du sous dossier (backup id)
oFolder.Delete (True)
WScript.Echo "Backup ID : " & oFolder.Name & " (deleted)"
WScript.Echo ""
End If
Next
--- Coupez ici : purgeBackupFolder.vbs ---
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
arrGPO (2) = Replace ( _
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
par
"Jean-Luc" a écrit dans le message de
news:
| Bonjour,
Bonsoir,
| Y a t il moyen de consulter le gpreport.xml de chaque
| GPO afin de consulter les champs <name> et <modified time> ?
| Pour supprimer les doublons c'est à dire : les
| dossiers dont le fichier xml a ces 2 champs identiques ?
Ci-dessous le script VBScript 'purgeBackupFolder.vbs' permettant de
supprimer les dossiers "Backup Id" obsolètes. Ce script pourra
s'exécuter après une sauvegarde totale des gpo réalisée via gpmc ou
backupAllGpos.wsf dans le but visant à faire le "ménage" du réperto ire
de sauvegarde (i.e suppression des doublons)
+++ Environnement de test
GPMC SP1
XP SP1/SP2 W2K3 SP1
+++ Pré requis
Internet Explorer 5.x (Parser XMLDOM)
Contrôle total sur les objets gpo
Contrôle total sur les dossiers des sauvegardes
+++ Usage
>cscript purgeBackupFolder.vbs <dossier_de_backup_des_gpo>
+++ Exemple
>cscript purgeBackupFolder.vbs C:gpmcbackup
--- Coupez ici : purgeBackupFolder.vbs ---
Option Explicit
' déclaration des variables
Dim oXml, oFs, oDic, oRootFolder, oFolder
Dim colFolders
Dim arrGPO (5), arrTemp
Dim strGPOId, strKey, strBackupFolder
Dim bBackup
' lecture du dossier racine passé comme argument
' ce dossier contient les backup id
strBackupFolder = WScript.Arguments (0)
' initialisation des objets
set oXml = CreateObject("Microsoft.XMLDOM")
set oFS = CreateObject ("Scripting.FileSystemObject")
Set oDic = CreateObject ("Scripting.Dictionary")
' ouverture du dossier racine
Set oRootFolder = oFs.GetFolder (strBackupFolder)
' lecture des sous dossiers (backup id)
Set colFolders = oRootFolder.SubFolders
' énumération des backup id
For Each oFolder In ColFolders
' chargement du fichier xml propre à la sauvegarde
' le fichier gpreport.xml est automatiquement généré
' lors de la sauvegarde de la gpo
oXml.Asyncúlse
oXml.Load (strBackupFolder & _
"" & oFolder.Name & _
"" & "GPReport.xml")
' lecture des valeurs xml via le parser
strGPOId = oXml.getElementsByTagName ("Identifier")(1).text
arrGPO (0) = oXml.getElementsByTagName ("Name")(0).text
arrGPO (1) = oFolder.Name
arrGPO (2) = Replace ( _
oXml.getElementsByTagName ("ModifiedTime")(0).text, _
"T", " ")
' calcul d'un timestamp Epoch
arrGPO (3) = DateDiff ("S", "1970-01-01", arrGPO (2))
arrGPO (4) = oFolder.DateCreated
' stockage des valeurs xml dans un hash
If Not oDic.Exists (strGPOId) Then
oDic (strGPOId) = Join (arrGPO, "~")
Else
' la gpo a déjà été sauvegardée (doublon)
' la plus récente "gagne"
' utilisation du timestamp calculé précédemment
arrTemp = Split (oDic (strGPOId), "~")
If CLng (arrGPO (3)) > CLng (arrTemp (3)) Then
oDic (strGPOId) = Join (arrGPO, "~")
End If
End If
Next
' les sauvegardes les plus récentes sont stockées dans le hash
' suppression des backup obsolètes et affichage du résumé
For Each oFolder In colFolders
bBackup = False
For Each strKey In oDic.Keys
arrTemp = Split (oDic (strKey), "~")
If arrTemp (1) = oFolder.Name Then
WScript.Echo "GPO ID : " & strkey
WScript.Echo "Modified : " & arrTemp (2)
WScript.Echo "GPO Name : " & arrTemp (0)
WScript.Echo "Backup ID : " & arrTemp (1)
WScript.Echo "Timestamp : " & arrTemp (4)
WScript.Echo ""
bBackup = True
Exit For
End If
Next
If bBackup = False Then
' le backup est obsolète
' suppression du sous dossier (backup id)
oFolder.Delete (True)
WScript.Echo "Backup ID : " & oFolder.Name & " (deleted)"
WScript.Echo ""
End If
Next
--- Coupez ici : purgeBackupFolder.vbs ---
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD