Option Explicit Dim objFSO, objTextFileResultat, objTextFileListe Dim CheminScriptActuel, CheminFichierBAT, CheminFichierListeMachines, ScriptFileName Dim Position Dim NomMachine Dim objWMIService, colItems, objItem Dim LigneResultat Dim varPoolNonpagedBytes, varPoolPagedBytes, varPagesPersec, varPercentCommittedBytesInUse, varFreeSystemPageTableEntries, varCacheBytes Dim varPercentInterruptTime, varPercentUserTime Dim varBytesReceivedPersec, varBytesSentPersec 'Déclaration des constantes Const ForReading = 1 Const ForWritting = 2 Const ForAppending = 8 Const AnalyserSessionsCitrix = 1 'Mettre à 1 si vous voulez analyser les sessions Citrix avec leur latence ScriptFileName = wscript.scriptname Position = InstrRev(ScriptFileName,".") if (Position > 0) Then ScriptFileName = Left(ScriptFileName, Position - 1) CheminFichierBAT = ScriptFileName & "_Resultat.txt" CheminFichierListeMachines = ScriptFileName & "_ListeMachines.txt" CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1) CheminFichierBAT = CheminScriptActuel & "\" & CheminFichierBAT CheminFichierListeMachines = CheminScriptActuel & "\" & CheminFichierListeMachines If (Len(CheminFichierBAT) > 0) And (Len(CheminFichierListeMachines) > 0) Then Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(CheminFichierListeMachines) Then 'Si le fichier qui contient la liste des machines existe Set objTextFileResultat = objFSO.OpenTextFile(CheminFichierBAT, ForWritting, True) If AnalyserSessionsCitrix = 1 Then Set objTextFileListe = objFSO.OpenTextFile(CheminFichierListeMachines, ForReading, True) 'Ecriture de l'entête des colonnes : objTextFileResultat.WriteLine("NomMachine" & VbTab & "Name" & VbTab & "Date&Heure" & VbTab & "LatencyLastRecorded" & VbTab & "LatencySessionAverage") Do Until objTextFileListe.AtEndOfStream NomMachine = objTextFileListe.Readline 'Lecture et affichage de la ligne 'Wscript.Echo "Traitement de " & NomMachine LigneResultat = "" On Error Resume Next Err.Clear Set objWMIService = GetObject("winmgmts:\\" & NomMachine & "\root\CIMV2") 'Wscript.Echo Err.Number & " - " & Err.Description If Err.Number = 0 Then Err.Clear Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfRawData_CitrixICA_ICASession",,48) 'Wscript.Echo Err.Number & " - " & Err.Description 'objTextFileResultat.WriteLine(LigneResultat) 'Wscript.Echo "Caption: " & objItem.Caption 'Wscript.Echo "Description: " & objItem.Description 'Wscript.Echo Err.Number & " - " & Err.Description For Each objItem in colItems LigneResultat = NomMachine LigneResultat = LigneResultat & VbTab & objItem.Name & VbTab & Now & VbTab & objItem.LatencyLastRecorded & VbTab & objItem.LatencySessionAverage objTextFileResultat.WriteLine(LigneResultat) Next If 1 = 2 Then Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfRawData_CitrixICA_ICASession",,48) For Each objItem in colItems Wscript.Echo "-----------------------------------" Wscript.Echo "Win32_PerfRawData_CitrixICA_ICASession instance" Wscript.Echo "-----------------------------------" Wscript.Echo "Caption: " & objItem.Caption Wscript.Echo "Description: " & objItem.Description Wscript.Echo "Frequency_Object: " & objItem.Frequency_Object Wscript.Echo "Frequency_PerfTime: " & objItem.Frequency_PerfTime Wscript.Echo "Frequency_Sys100NS: " & objItem.Frequency_Sys100NS Wscript.Echo "LatencyLastRecorded: " & objItem.LatencyLastRecorded Wscript.Echo "LatencySessionAverage: " & objItem.LatencySessionAverage Wscript.Echo "LatencySessionDeviation: " & objItem.LatencySessionDeviation Wscript.Echo "Name: " & objItem.Name Wscript.Echo "Timestamp_Object: " & objItem.Timestamp_Object Wscript.Echo "Timestamp_PerfTime: " & objItem.Timestamp_PerfTime Wscript.Echo "Timestamp_Sys100NS: " & objItem.Timestamp_Sys100NS Next End If Else Wscript.Echo VbTab & "Erreur pour joindre " & NomMachine LigneResultat = NomMachine & VbTab & "Erreur pour joindre la machine" objTextFileResultat.WriteLine(LigneResultat) End If Set colItems = Nothing Set objWMIService = Nothing Loop 'Analyse des compteurs de performance des disques 'Ecriture de l'entête des colonnes : objTextFileResultat.WriteLine("") objTextFileResultat.WriteLine("NomMachine" & VbTab & "Name" & VbTab & "Date&Heure" & VbTab & "AvgDiskWriteQueueLength") objTextFileListe.Close Set objTextFileListe = Nothing End If Set objTextFileListe = objFSO.OpenTextFile(CheminFichierListeMachines, ForReading, True) Do Until objTextFileListe.AtEndOfStream NomMachine = objTextFileListe.Readline 'Lecture et affichage de la ligne 'Wscript.Echo "Traitement de " & NomMachine LigneResultat = "" On Error Resume Next Err.Clear Set objWMIService = GetObject("winmgmts:\\" & NomMachine & "\root\CIMV2") 'Wscript.Echo Err.Number & " - " & Err.Description If Err.Number = 0 Then Err.Clear Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfDisk_LogicalDisk",,48) For Each objItem in colItems LigneResultat = NomMachine LigneResultat = LigneResultat & VbTab & objItem.Name & VbTab & Now & VbTab & objItem.AvgDiskWriteQueueLength objTextFileResultat.WriteLine(LigneResultat) Next Else Wscript.Echo VbTab & "Erreur pour joindre " & NomMachine LigneResultat = NomMachine & VbTab & "Erreur pour joindre la machine" objTextFileResultat.WriteLine(LigneResultat) End If Set colItems = Nothing Set objWMIService = Nothing Loop 'Analyse des compteurs pour le cpu 'Ecriture de l'entête des colonnes : objTextFileResultat.WriteLine("") objTextFileResultat.WriteLine("-----------------------------------") objTextFileResultat.WriteLine("Analyse des compteurs pour le cpu") objTextFileResultat.WriteLine("-----------------------------------") objTextFileResultat.WriteLine("") objTextFileResultat.WriteLine("PercentInterruptTime : Mesure le temps processeur passé à gérer des demandes d’interruption hardware. Si plus de 15%, il y a un problème hardware.") objTextFileResultat.WriteLine("PercentUserTime : Pourcentage du temps processeur passé en mode utilisateur. La valeur doit rester faible. Dans le cas contraire, il faut optimiser l’application") objTextFileResultat.WriteLine("") objTextFileResultat.WriteLine("NomMachine" & VbTab & "Name" & VbTab & "Date&Heure" & VbTab & "PercentProcessorTime" & VbTab & "PercentInterruptTime" & VbTab & "PercentUserTime") objTextFileListe.Close Set objTextFileListe = Nothing Set objTextFileListe = objFSO.OpenTextFile(CheminFichierListeMachines, ForReading, True) Do Until objTextFileListe.AtEndOfStream NomMachine = objTextFileListe.Readline 'Lecture et affichage de la ligne 'Wscript.Echo "Traitement de " & NomMachine LigneResultat = "" On Error Resume Next Err.Clear Set objWMIService = GetObject("winmgmts:\\" & NomMachine & "\root\CIMV2") 'Wscript.Echo Err.Number & " - " & Err.Description If Err.Number = 0 Then Err.Clear Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_Processor",,48) For Each objItem in colItems varPercentInterruptTime = objItem.PercentInterruptTime If varPercentInterruptTime > 15 Then varPercentInterruptTime = varPercentInterruptTime & " (PB)" varPercentUserTime = objItem.PercentUserTime If varPercentUserTime > 15 Then varPercentUserTime = varPercentUserTime & " (PB ?)" LigneResultat = NomMachine LigneResultat = LigneResultat & VbTab & objItem.Name & VbTab & Now & VbTab & objItem.PercentProcessorTime & VbTab & varPercentInterruptTime & VbTab & varPercentUserTime objTextFileResultat.WriteLine(LigneResultat) Next Else Wscript.Echo VbTab & "Erreur pour joindre " & NomMachine LigneResultat = NomMachine & VbTab & "Erreur pour joindre la machine" objTextFileResultat.WriteLine(LigneResultat) End If Set colItems = Nothing Set objWMIService = Nothing Loop 'Analyse des compteurs de mémoire vive 'Ecriture de l'entête des colonnes : objTextFileResultat.WriteLine("") objTextFileResultat.WriteLine("-----------------------------------") objTextFileResultat.WriteLine("Analyse des compteurs pour la mémoire vive") objTextFileResultat.WriteLine("-----------------------------------") objTextFileResultat.WriteLine("") objTextFileResultat.WriteLine("PagesPersec : Mesure le nombre d’échanges qu’il y a entre la mémoire vive et le disque dur (mémoire virtuelle). Ne doit pas dépasser 1000 sur de longues périodes.") objTextFileResultat.WriteLine("PercentCommittedBytesInUse : manque de memoire si superieur a 80%") objTextFileResultat.WriteLine("PoolNonpagedBytes : Mesure la taille de la mémoire non paginée. C’est une zone mémoire système pour les objets qui ne peuvent être écrit sur le disque dur et doivent donc rester en mémoire vive. Ne doit pas dépasser 175Mb") objTextFileResultat.WriteLine("PoolPagedBytes : Mesure la taille de la mémoire paginée. C’est une zone mémoire système pour les objets qui peuvent être écrit sur le disque dur quand ils ne sont pas utilisés. Ne doit pas dépasser 250Mb") objTextFileResultat.WriteLine("FreeSystemPageTableEntries : Nombre de page table entries non utilisé par le système. Il y a une faiblesse mémoire si on est en dessous de 5000") objTextFileResultat.WriteLine("CacheBytes : Ne doit pas dépasser 300Mb. Indique la mémoire utilisée pour le file system cache.") objTextFileResultat.WriteLine("") objTextFileResultat.WriteLine("NomMachine" & VbTab & "Name" & VbTab & "Date&Heure" & VbTab & "AvailableMBytes" & VbTab & "PagesPersec" & VbTab & "PercentCommittedBytesInUse" & VbTab & "FreeSystemPageTableEntries" & VbTab & "PoolNonpagedBytes" & VbTab & "PoolPagedBytes" & VbTab & "CacheBytes") objTextFileListe.Close Set objTextFileListe = Nothing Set objTextFileListe = objFSO.OpenTextFile(CheminFichierListeMachines, ForReading, True) Do Until objTextFileListe.AtEndOfStream NomMachine = objTextFileListe.Readline 'Lecture et affichage de la ligne 'Wscript.Echo "Traitement de " & NomMachine LigneResultat = "" On Error Resume Next Err.Clear Set objWMIService = GetObject("winmgmts:\\" & NomMachine & "\root\CIMV2") 'Wscript.Echo Err.Number & " - " & Err.Description If Err.Number = 0 Then Err.Clear Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_Memory",,48) For Each objItem in colItems varPagesPersec = objItem.PagesPersec If varPagesPersec > 1000 Then varPagesPersec = varPagesPersec & " (PB si longtemps)" varPoolNonpagedBytes = Round((objItem.PoolNonpagedBytes)/1024/1024,0) If varPoolNonpagedBytes > 175 Then varPoolNonpagedBytes = varPoolNonpagedBytes & " (PB)" varPoolPagedBytes = Round((objItem.PoolPagedBytes)/1024/1024,0) If varPoolPagedBytes > 250 Then varPoolPagedBytes = varPoolPagedBytes & " (PB)" varPercentCommittedBytesInUse = objItem.PercentCommittedBytesInUse If varPercentCommittedBytesInUse >= 80 Then varPercentCommittedBytesInUse = varPercentCommittedBytesInUse & " (PB)" varFreeSystemPageTableEntries = objItem.FreeSystemPageTableEntries If varFreeSystemPageTableEntries < 5000 Then varFreeSystemPageTableEntries = varFreeSystemPageTableEntries & " (PB)" varCacheBytes = Round((objItem.CacheBytes)/1024/1024,0) If varCacheBytes > 300 Then varCacheBytes = varCacheBytes & " (PB)" LigneResultat = NomMachine LigneResultat = LigneResultat & VbTab & objItem.Name & VbTab & Now & VbTab & objItem.AvailableMBytes & VbTab & objItem.PagesPersec & VbTab & varPercentCommittedBytesInUse & VbTab & varFreeSystemPageTableEntries & VbTab & varPoolNonpagedBytes & VbTab & varPoolPagedBytes & VbTab & varCacheBytes objTextFileResultat.WriteLine(LigneResultat) Next Else Wscript.Echo VbTab & "Erreur pour joindre " & NomMachine LigneResultat = NomMachine & VbTab & "Erreur pour joindre la machine" objTextFileResultat.WriteLine(LigneResultat) End If Set colItems = Nothing Set objWMIService = Nothing Loop 'Analyse des compteurs pour le réseau 'Ecriture de l'entête des colonnes : objTextFileResultat.WriteLine("") objTextFileResultat.WriteLine("-----------------------------------") objTextFileResultat.WriteLine("Analyse des compteurs pour le réseau") objTextFileResultat.WriteLine("-----------------------------------") objTextFileResultat.WriteLine("") objTextFileResultat.WriteLine("NomMachine" & VbTab & "Name" & VbTab & "Date&Heure" & VbTab & "BytesReceivedPersec (en Mb)" & VbTab & "BytesSentPersec (en Mb)" & VbTab & "OutputQueueLength" & VbTab & "PacketsReceivedErrors" & VbTab & "PacketsOutboundErrors" & VbTab & "PacketsOutboundDiscarded" & VbTab & "PacketsReceivedUnknown") objTextFileListe.Close Set objTextFileListe = Nothing Set objTextFileListe = objFSO.OpenTextFile(CheminFichierListeMachines, ForReading, True) Do Until objTextFileListe.AtEndOfStream NomMachine = objTextFileListe.Readline 'Lecture et affichage de la ligne 'Wscript.Echo "Traitement de " & NomMachine LigneResultat = "" On Error Resume Next Err.Clear Set objWMIService = GetObject("winmgmts:\\" & NomMachine & "\root\CIMV2") 'Wscript.Echo Err.Number & " - " & Err.Description If Err.Number = 0 Then Err.Clear Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_Tcpip_NetworkInterface",,48) For Each objItem in colItems varBytesReceivedPersec = Round((objItem.BytesReceivedPersec)/1024/1024,3) varBytesSentPersec = Round((objItem.BytesSentPersec)/1024/1024,3) LigneResultat = NomMachine LigneResultat = LigneResultat & VbTab & objItem.Name & VbTab & Now & VbTab & varBytesReceivedPersec & VbTab & varBytesSentPersec & VbTab & objItem.OutputQueueLength & VbTab & objItem.PacketsReceivedErrors & VbTab & objItem.PacketsOutboundErrors & VbTab & objItem.PacketsOutboundDiscarded & VbTab & objItem.PacketsReceivedUnknown objTextFileResultat.WriteLine(LigneResultat) Next Else Wscript.Echo VbTab & "Erreur pour joindre " & NomMachine LigneResultat = NomMachine & VbTab & "Erreur pour joindre la machine" objTextFileResultat.WriteLine(LigneResultat) End If Set colItems = Nothing Set objWMIService = Nothing Loop objTextFileResultat.Close 'Fermeture du fichier objTextFileListe.Close Set objTextFileResultat = Nothing Set objTextFileListe = Nothing Else Wscript.echo "Le fichier '" & CheminFichierListeMachines & "' n'existe pas" Set objTextFileListe = objFSO.OpenTextFile(CheminFichierListeMachines, ForWritting, True) objTextFileListe.Close 'Fermeture du fichier Set objTextFileListe = Nothing End If Set objFSO = Nothing Else Wscript.echo "Operation annulee" End If 'CheminFichierBAT '"Win32_PerfFormattedData_PerfDisk_LogicalDisk instance" '"-----------------------------------" '"AvgDiskBytesPerRead: " & objItem.AvgDiskBytesPerRead '"AvgDiskBytesPerTransfer: " & objItem.AvgDiskBytesPerTransfer '"AvgDiskBytesPerWrite: " & objItem.AvgDiskBytesPerWrite '"AvgDiskQueueLength: " & objItem.AvgDiskQueueLength '"AvgDiskReadQueueLength: " & objItem.AvgDiskReadQueueLength '"AvgDisksecPerRead: " & objItem.AvgDisksecPerRead '"AvgDisksecPerTransfer: " & objItem.AvgDisksecPerTransfer '"AvgDisksecPerWrite: " & objItem.AvgDisksecPerWrite '"AvgDiskWriteQueueLength: " & objItem.AvgDiskWriteQueueLength '"Caption: " & objItem.Caption '"CurrentDiskQueueLength: " & objItem.CurrentDiskQueueLength '"Description: " & objItem.Description '"DiskBytesPersec: " & objItem.DiskBytesPersec '"DiskReadBytesPersec: " & objItem.DiskReadBytesPersec '"DiskReadsPersec: " & objItem.DiskReadsPersec '"DiskTransfersPersec: " & objItem.DiskTransfersPersec '"DiskWriteBytesPersec: " & objItem.DiskWriteBytesPersec '"DiskWritesPersec: " & objItem.DiskWritesPersec '"FreeMegabytes: " & objItem.FreeMegabytes '"Frequency_Object: " & objItem.Frequency_Object '"Frequency_PerfTime: " & objItem.Frequency_PerfTime '"Frequency_Sys100NS: " & objItem.Frequency_Sys100NS '"Name: " & objItem.Name '"PercentDiskReadTime: " & objItem.PercentDiskReadTime '"PercentDiskTime: " & objItem.PercentDiskTime '"PercentDiskWriteTime: " & objItem.PercentDiskWriteTime '"PercentFreeSpace: " & objItem.PercentFreeSpace '"PercentIdleTime: " & objItem.PercentIdleTime '"SplitIOPerSec: " & objItem.SplitIOPerSec '"Timestamp_Object: " & objItem.Timestamp_Object '"Timestamp_PerfTime: " & objItem.Timestamp_PerfTime '"Timestamp_Sys100NS: " & objItem.Timestamp_Sys100NS '"-----------------------------------" '"Win32_PerfFormattedData_PerfOS_Memory instance" '"-----------------------------------" '"AvailableBytes: " & objItem.AvailableBytes '"AvailableKBytes: " & objItem.AvailableKBytes '"AvailableMBytes: " & objItem.AvailableMBytes '"CacheBytes: " & objItem.CacheBytes '"CacheBytesPeak: " & objItem.CacheBytesPeak '"CacheFaultsPersec: " & objItem.CacheFaultsPersec '"Caption: " & objItem.Caption '"CommitLimit: " & objItem.CommitLimit '"CommittedBytes: " & objItem.CommittedBytes '"DemandZeroFaultsPersec: " & objItem.DemandZeroFaultsPersec '"Description: " & objItem.Description '"FreeAndZeroPageListBytes: " & objItem.FreeAndZeroPageListBytes '"FreeSystemPageTableEntries: " & objItem.FreeSystemPageTableEntries '"Frequency_Object: " & objItem.Frequency_Object '"Frequency_PerfTime: " & objItem.Frequency_PerfTime '"Frequency_Sys100NS: " & objItem.Frequency_Sys100NS '"ModifiedPageListBytes: " & objItem.ModifiedPageListBytes '"Name: " & objItem.Name '"PageFaultsPersec: " & objItem.PageFaultsPersec '"PageReadsPersec: " & objItem.PageReadsPersec '"PagesInputPersec: " & objItem.PagesInputPersec '"PagesOutputPersec: " & objItem.PagesOutputPersec '"PagesPersec: " & objItem.PagesPersec '"PageWritesPersec: " & objItem.PageWritesPersec '"PercentCommittedBytesInUse: " & objItem.PercentCommittedBytesInUse '"PoolNonpagedAllocs: " & objItem.PoolNonpagedAllocs '"PoolNonpagedBytes: " & objItem.PoolNonpagedBytes '"PoolPagedAllocs: " & objItem.PoolPagedAllocs '"PoolPagedBytes: " & objItem.PoolPagedBytes '"PoolPagedResidentBytes: " & objItem.PoolPagedResidentBytes '"StandbyCacheCoreBytes: " & objItem.StandbyCacheCoreBytes '"StandbyCacheNormalPriorityBytes: " & objItem.StandbyCacheNormalPriorityBytes '"StandbyCacheReserveBytes: " & objItem.StandbyCacheReserveBytes '"SystemCacheResidentBytes: " & objItem.SystemCacheResidentBytes '"SystemCodeResidentBytes: " & objItem.SystemCodeResidentBytes '"SystemCodeTotalBytes: " & objItem.SystemCodeTotalBytes '"SystemDriverResidentBytes: " & objItem.SystemDriverResidentBytes '"SystemDriverTotalBytes: " & objItem.SystemDriverTotalBytes '"Timestamp_Object: " & objItem.Timestamp_Object '"Timestamp_PerfTime: " & objItem.Timestamp_PerfTime '"Timestamp_Sys100NS: " & objItem.Timestamp_Sys100NS '"TransitionFaultsPersec: " & objItem.TransitionFaultsPersec '"TransitionPagesRePurposedPersec: " & objItem.TransitionPagesRePurposedPersec '"WriteCopiesPersec: " & objItem.WriteCopiesPersec '"-----------------------------------" '"Win32_PerfFormattedData_PerfOS_Processor instance" '"-----------------------------------" '"C1TransitionsPersec: " & objItem.C1TransitionsPersec '"C2TransitionsPersec: " & objItem.C2TransitionsPersec '"C3TransitionsPersec: " & objItem.C3TransitionsPersec '"Caption: " & objItem.Caption '"Description: " & objItem.Description '"DPCRate: " & objItem.DPCRate '"DPCsQueuedPersec: " & objItem.DPCsQueuedPersec '"Frequency_Object: " & objItem.Frequency_Object '"Frequency_PerfTime: " & objItem.Frequency_PerfTime '"Frequency_Sys100NS: " & objItem.Frequency_Sys100NS '"InterruptsPersec: " & objItem.InterruptsPersec '"Name: " & objItem.Name '"PercentC1Time: " & objItem.PercentC1Time '"PercentC2Time: " & objItem.PercentC2Time '"PercentC3Time: " & objItem.PercentC3Time '"PercentDPCTime: " & objItem.PercentDPCTime '"PercentIdleTime: " & objItem.PercentIdleTime '"PercentInterruptTime: " & objItem.PercentInterruptTime '"PercentPrivilegedTime: " & objItem.PercentPrivilegedTime '"PercentProcessorTime: " & objItem.PercentProcessorTime '"PercentUserTime: " & objItem.PercentUserTime '"Timestamp_Object: " & objItem.Timestamp_Object '"Timestamp_PerfTime: " & objItem.Timestamp_PerfTime '"Timestamp_Sys100NS: " & objItem.Timestamp_Sys100NS '"-----------------------------------" '"Win32_PerfFormattedData_Tcpip_NetworkInterface instance" '"-----------------------------------" '"BytesReceivedPersec: " & objItem.BytesReceivedPersec '"BytesSentPersec: " & objItem.BytesSentPersec '"BytesTotalPersec: " & objItem.BytesTotalPersec '"Caption: " & objItem.Caption '"CurrentBandwidth: " & objItem.CurrentBandwidth '"Description: " & objItem.Description '"Frequency_Object: " & objItem.Frequency_Object '"Frequency_PerfTime: " & objItem.Frequency_PerfTime '"Frequency_Sys100NS: " & objItem.Frequency_Sys100NS '"Name: " & objItem.Name '"OffloadedConnections: " & objItem.OffloadedConnections '"OutputQueueLength: " & objItem.OutputQueueLength '"PacketsOutboundDiscarded: " & objItem.PacketsOutboundDiscarded '"PacketsOutboundErrors: " & objItem.PacketsOutboundErrors '"PacketsPersec: " & objItem.PacketsPersec '"PacketsReceivedDiscarded: " & objItem.PacketsReceivedDiscarded '"PacketsReceivedErrors: " & objItem.PacketsReceivedErrors '"PacketsReceivedNonUnicastPersec: " & objItem.PacketsReceivedNonUnicastPersec '"PacketsReceivedPersec: " & objItem.PacketsReceivedPersec '"PacketsReceivedUnicastPersec: " & objItem.PacketsReceivedUnicastPersec '"PacketsReceivedUnknown: " & objItem.PacketsReceivedUnknown '"PacketsSentNonUnicastPersec: " & objItem.PacketsSentNonUnicastPersec '"PacketsSentPersec: " & objItem.PacketsSentPersec '"PacketsSentUnicastPersec: " & objItem.PacketsSentUnicastPersec '"Timestamp_Object: " & objItem.Timestamp_Object '"Timestamp_PerfTime: " & objItem.Timestamp_PerfTime '"Timestamp_Sys100NS: " & objItem.Timestamp_Sys100NS