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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
   | strComputer = "." '        ou est déclarée cette variable strComputer  ???
Set WshNetwork = WScript.CreateObject("WScript.Network")'        ou est déclarée cette variable WshNetwork  ???
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")'        ou est déclaré cette variable objWMIService  ???
'--------------------------------------------------------------------------------
Dim xlApp
On Error Resume Next
Set xlApp = CreateObject("Excel.Application")
If Err.Number = 0 Then
	'If Err.Number <> 0 Then
	Err.Clear
	'MsgBox "There"
	xlApp.Close ' ?????????? pourquoi fermer pour ré-ouvrir sous objXL ??????????
	'--------------------------------------------------------------------------------
	Dim objXL
	'Const ForAppending = 8 'inutile ICI
	Set objFSO = CreateObject("Scripting.FileSystemObject")'        ou est déclarée cette variable objFSO  ???
	Set objXL = WScript.CreateObject("Excel.Application")
	objXL.Workbooks.Add
 
	objXL.Cells(1, 1).Value = "Nom"
	objXL.Cells(1, 2).Value = "OS+SP"
	objXL.Cells(1, 3).Value = "Version"
	objXL.Cells(1, 4).Value = "# Série"
	objXL.Cells(1, 5).Value = "Fabriquant"
	objXL.Cells(1, 6).Value = "Modèle"
	objXL.Cells(1, 7).Value = "Mémoire"
	objXL.Cells(1, 8).Value = "Installé le"
	objXL.Cells(1, 9).Value = "Version Office"
	objXL.Cells(1, 10).Value = "Date Inventaire"
 
	objXL.Columns(1).ColumnWidth = 28
	objXL.Columns(2).ColumnWidth = 65
	objXL.Columns(3).ColumnWidth = 20
	objXL.Columns(4).ColumnWidth = 15
	objXL.Columns(5).ColumnWidth = 20
	objXL.Columns(6).ColumnWidth = 20
	objXL.Columns(7).ColumnWidth = 20
	objXL.Columns(8).ColumnWidth = 20
	objXL.Columns(9).ColumnWidth = 20
 
	objXL.Range("A1:J1").Select
	objXL.Selection.Font.ColorIndex = 41
	objXL.Selection.Font.Bold = True
	objXL.Selection.Font.Size = 13 
	objXL.Selection.Interior.ColorIndex = 46 
	objXL.Selection.Interior.Pattern = 1      'xlSolid 
	'------------------------------------------------------------------------------------
	Set dtmInstallDate = CreateObject("WbemScripting.SWbemDateTime")'        ou est déclarée cette variable dtmInstallDate  ???
	' Une fonction dans un If ..... Then  !!!!!!!!!!!!!!!!!! et sa fonctionne ??? là j'aurai appris quelque chose
	Function getmydat(wmitime)
		dtmInstallDate.Value = wmitime
		getmydat = dtmInstallDate.GetVarDate
	End function
	'
	Set colSettings = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")'        ou est déclarée cette variable colSettings  ???
	For Each objOperatingSystem in colSettings'        ou est déclarée cette variable objOperatingSystem  ??? 
		i = i + 1 
		objXL.Cells(i+2,1).Value=UCase(WshNetwork.ComputerName)
		objXL.Cells(i+2,2).value=objOperatingSystem.Caption & " - Service Pack  " & objOperatingSystem.ServicePackMajorVersion
		objXL.Cells(i+2,3).value=objOperatingSystem.Version
		objXL.Cells(i+2,4).value=objOperatingSystem.SerialNumber
		objXL.Cells(i+2,8).value=getmydat (objOperatingSystem.InstallDate)
	Next
	'------------------------------------------------------------------------------------------
	Set colSettings = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
	For Each objComputer in colSettings'        ou est déclarée cette variable objComputer  ???  
		objXL.Cells(i+2,5).value=objComputer.Manufacturer
		objXL.Cells(i+2,6).value=objComputer.Model
		objXL.Cells(i+2,7).value=objComputer.TotalPhysicalMemory
	Next
	'-------------------------------------------------------------------------------------------------
	Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
	Set colItems = objWMIService.ExecQuery ("Select * from Win32_Product Where Caption Like '%Microsoft Office%'")
	For Each objItem In colItems'        ou est déclarée cette variable objItem  et  colItems  ???  
		If Left(objItem.Version, 2) = "14" Then
			objXL.Cells(i+2,9).value="Office 2010"
			ElseIf Left(objItem.Version, 2) = "12" Then
			objXL.Cells(i+2,9).value="Office 2007"
			ElseIf Left(objItem.Version, 2) = "11" Then
			objXL.Cells(i+2,9).value="Office 2003"
			ElseIf Left(objItem.Version, 2) = "10" Then
			objXL.Cells(i+2,9).value="Office XP"
			Else
			objXL.Cells(i+2,9).value="Autre"
		End If
	Next
	objXL.Cells(i+2,10).value=Date
	'-----------------------------------------------------------------------------------------------
	objXL.Visible = False
	objXL.Application.DisplayAlerts = False
	objXL.ActiveWorkbook.SaveAs "\\127.0.0.1\IVentory\PC.xls"
	objXL.ActiveWorkbook.Close
	objXL.Quit
	Set objXL = Nothing
 
	'..........................................................................................................................
	Else 'else de la condition ligne 9, If Err.Number = 0 Then (erreur vérifiée suite à Set xlApp = CreateObject("Excel.Application")).
	'..........................................................................................................................
 	' donc ici on est Err.number <> 0 donc xlApp est Nothing
	'xlApp.Close ' xlApp n'est donc pas ouvert
 
	'la constante ForAppending = 8 étant déclarée dans la condition vraie de la ligne 9 (erreur = 0)
	'elle n'est pas initialisée dans cette partie
	Const ForAppending = 8 'donc là déclarer ICI
	'-----------------------------------------------------------------------------------------------------
	Dim strFile, strText 'strDirectory, 
	'strDirectory = "\\127.0.0.1\Iventory" '  non utilisé ICI
	strFile = "\PCNoExcel.txt"
	strText = "PC Withoot Excel"
	'---------------------------------------------------------------------------------------------------------
	set objFSO = CreateObject("Scripting.FileSystemObject") '        ou est déclarée cette variable objFSO  ???
	set objFile = objFSO.OpenTextFile(strFile, ForAppending, True)
	objFile.WriteLine(WshNetwork.ComputerName & " - " & Now)
	objFile.Close
	'-----------------------------------------------------------------------------------------------------
End If | 
Partager