Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.16 KB | None | 0 0
  1. # ==============================================================================================
  2. #
  3. # Microsoft PowerShell Source File -- Created with SAPIEN Technologies PrimalScript 2007
  4. #
  5. # NAME: Server/Workstation Inventory (CompInv_v2.ps1)
  6. #
  7. # AUTHOR: Jesse Hamrick
  8. # DATE : 2/25/2009
  9. # Web : www.PowerShellPro.com
  10. # COMMENT: Script Inventories Computers and sends results to an excel file.
  11. #
  12. # ==============================================================================================
  13.  
  14. # ==============================================================================================
  15. # Functions Section
  16. # ==============================================================================================
  17. # Function Name 'WMILookup' - Gathers info using WMI and places results in Excel
  18. # ==============================================================================================
  19. Function WMILookup {
  20. foreach ($StrComputer in $colComputers){
  21. $GenItems1 = gwmi Win32_ComputerSystem -Comp $StrComputer
  22. $GenItems2 = gwmi Win32_OperatingSystem -Comp $StrComputer
  23. $SysItems1 = gwmi Win32_BIOS -Comp $StrComputer
  24. $SysItems2 = gwmi Win32_TimeZone -Comp $StrComputer
  25. $SysItems3 = gwmi Win32_WmiSetting -Comp $StrComputer
  26. $ProcItems1 = gwmi Win32_Processor -Comp $StrComputer
  27. $MemItems1 = gwmi Win32_PhysicalMemory -Comp $StrComputer
  28. $memItems2 = gwmi Win32_PhysicalMemoryArray -Comp $StrComputer
  29. $DiskItems = gwmi Win32_LogicalDisk -Comp $StrComputer
  30. $NetItems = gwmi Win32_NetworkAdapterConfiguration -Comp $StrComputer |`
  31. where{$_.IPEnabled -eq "True"}
  32.  
  33.  
  34. # Populate General Sheet(1) with information
  35. foreach ($objItem in $GenItems1){
  36. $Sheet1.Cells.Item($intRow, 1) = $StrComputer
  37. Switch($objItem.DomainRole)
  38. {
  39. 0{$Sheet1.Cells.Item($intRow, 2) = "Stand Alone Workstation"}
  40. 1{$Sheet1.Cells.Item($intRow, 2) = "Member Workstation"}
  41. 2{$Sheet1.Cells.Item($intRow, 2) = "Stand Alone Server"}
  42. 3{$Sheet1.Cells.Item($intRow, 2) = "Member Server"}
  43. 4{$Sheet1.Cells.Item($intRow, 2) = "Back-up Domain Controller"}
  44. 5{$Sheet1.Cells.Item($intRow, 2) = "Primary Domain Controller"}
  45. default{"Undetermined"}
  46. }
  47. $Sheet1.Cells.Item($intRow, 3) = $objItem.Manufacturer
  48. $Sheet1.Cells.Item($intRow, 4) = $objItem.Model
  49. $Sheet1.Cells.Item($intRow, 5) = $objItem.SystemType
  50. $Sheet1.Cells.Item($intRow, 6) = $objItem.NumberOfProcessors
  51. $Sheet1.Cells.Item($intRow, 7) = $objItem.TotalPhysicalMemory / 1024 / 1024
  52. }
  53. foreach ($objItem in $GenItems2){
  54. $Sheet1.Cells.Item($intRow, 8) = $objItem.Caption
  55. $Sheet1.Cells.Item($intRow, 9) = $objItem.csdversion
  56. }
  57.  
  58. #Populate Systems Sheet
  59. foreach ($objItem in $SysItems1){
  60. $Sheet2.Cells.Item($intRow, 1) = $StrComputer
  61. $Sheet2.Cells.Item($intRow, 2) = $objItem.Name
  62. $Sheet2.Cells.Item($intRow, 3) = $objItem.SMBIOSbiosVersion
  63. $Sheet2.Cells.Item($intRow, 4) = $objItem.SerialNumber
  64. }
  65. foreach ($objItem in $SysItems2){
  66. $Sheet2.Cells.Item($intRow, 5) = $objItem.Caption
  67. }
  68. foreach ($objItem in $SysItems3){
  69. $Sheet2.Cells.Item($intRow, 6) = $objItem.BuildVersion
  70. }
  71.  
  72. #Populate Processor Sheet
  73. foreach ($objItem in $ProcItems1){
  74. $Sheet3.Cells.Item($intRowCPU, 1) = $StrComputer
  75. $Sheet3.Cells.Item($intRowCPU, 2) = $objItem.DeviceID+" "+$objItem.Name
  76. $Sheet3.Cells.Item($intRowCPU, 3) = $objItem.Description
  77. $Sheet3.Cells.Item($intRowCPU, 4) = $objItem.family
  78. $Sheet3.Cells.Item($intRowCPU, 5) = $objItem.currentClockSpeed
  79. $Sheet3.Cells.Item($intRowCPU, 6) = $objItem.l2cacheSize
  80. $Sheet3.Cells.Item($intRowCPU, 7) = $objItem.UpgradeMethod
  81. $Sheet3.Cells.Item($intRowCPU, 8) = $objItem.SocketDesignation
  82. $intRowCPU = $intRowCPU + 1
  83. }
  84.  
  85. #Populate Memory Sheet
  86. $bankcounter = 1
  87. foreach ($objItem in $memItems2){
  88. $MemSlots = $objItem.MemoryDevices +1
  89.  
  90. foreach ($objItem in $MemItems1){
  91. $Sheet4.Cells.Item($intRowMem, 1) = $StrComputer
  92. $Sheet4.Cells.Item($intRowMem, 2) = "Bank " +$bankcounter
  93. if($objItem.BankLabel -eq ""){
  94. $Sheet4.Cells.Item($intRowMem, 3) = $objItem.DeviceLocator}
  95. Else{$Sheet4.Cells.Item($intRowMem, 3) = $objItem.BankLabel}
  96. $Sheet4.Cells.Item($intRowMem, 4) = $objItem.Capacity/1024/1024
  97. $Sheet4.Cells.Item($intRowMem, 5) = $objItem.FormFactor
  98. $Sheet4.Cells.Item($intRowMem, 6) = $objItem.TypeDetail
  99. $intRowMem = $intRowMem + 1
  100. $bankcounter = $bankcounter + 1
  101. }
  102. while($bankcounter -lt $MemSlots)
  103. {
  104. $Sheet4.Cells.Item($intRowMem, 1) = $StrComputer
  105. $Sheet4.Cells.Item($intRowMem, 2) = "Bank " +$bankcounter
  106. $Sheet4.Cells.Item($intRowMem, 3) = "is Empty"
  107. $Sheet4.Cells.Item($intRowMem, 4) = ""
  108. $Sheet4.Cells.Item($intRowMem, 5) = ""
  109. $Sheet4.Cells.Item($intRowMem, 6) = ""
  110. $intRowMem = $intRowMem + 1
  111. $bankcounter = $bankcounter + 1
  112. }
  113. }
  114.  
  115.  
  116. #Populate Disk Sheet
  117. foreach ($objItem in $DiskItems){
  118. $Sheet5.Cells.Item($intRowDisk, 1) = $StrComputer
  119. Switch($objItem.DriveType)
  120. {
  121. 2{$Sheet5.Cells.Item($intRowDisk, 2) = "Floppy"}
  122. 3{$Sheet5.Cells.Item($intRowDisk, 2) = "Fixed Disk"}
  123. 5{$Sheet5.Cells.Item($intRowDisk, 2) = "Removable Media"}
  124. default{"Undetermined"}
  125. }
  126. $Sheet5.Cells.Item($intRowDisk, 3) = $objItem.DeviceID
  127. $Sheet5.Cells.Item($intRowDisk, 4) = $objItem.Size/1024/1024
  128. $Sheet5.Cells.Item($intRowDisk, 5) = $objItem.FreeSpace/1024/1024
  129. $intRowDisk = $intRowDisk + 1
  130. }
  131.  
  132. #Populate Network Sheet
  133. foreach ($objItem in $NetItems){
  134. $Sheet6.Cells.Item($intRowNet, 1) = $StrComputer
  135. $Sheet6.Cells.Item($intRowNet, 2) = $objItem.Caption+" (enabled)"
  136. $Sheet6.Cells.Item($intRowNet, 3) = $objItem.DHCPEnabled
  137. $Sheet6.Cells.Item($intRowNet, 4) = $objItem.IPAddress
  138. $Sheet6.Cells.Item($intRowNet, 5) = $objItem.IPSubnet
  139. $Sheet6.Cells.Item($intRowNet, 6) = $objItem.DefaultIPGateway
  140. $Sheet6.Cells.Item($intRowNet, 7) = $objItem.DNSServerSearchOrder
  141. $Sheet6.Cells.Item($intRowNet, 8) = $objItem.FullDNSRegistrationEnabled
  142. $Sheet6.Cells.Item($intRowNet, 9) = $objItem.WINSPrimaryServer
  143. $Sheet6.Cells.Item($intRowNet, 10) = $objItem.WINSSecondaryServer
  144. $Sheet6.Cells.Item($intRowNet, 11) = $objItem.WINSEnableLMHostsLookup
  145. $intRowNet = $intRowNet + 1
  146. }
  147.  
  148. $intRow = $intRow + 1
  149. $intRowCPU = $intRowCPU + 1
  150. $intRowMem = $intRowMem + 1
  151. $intRowDisk = $intRowDisk + 1
  152. $intRowNet = $intRowNet + 1
  153. }
  154. }
  155.  
  156. # ==============================================================================================
  157. # Function Name 'WMILookupCred'-Uses Alternative Credential-Gathers info using WMI.
  158. # ==============================================================================================
  159. Function WMILookupCred {
  160. foreach ($StrComputer in $colComputers){
  161. $GenItems1 = gwmi Win32_ComputerSystem -Comp $StrComputer -Credential $cred
  162. $GenItems2 = gwmi Win32_OperatingSystem -Comp $StrComputer -Credential $cred
  163. $SysItems1 = gwmi Win32_BIOS -Comp $StrComputer -Credential $cred
  164. $SysItems2 = gwmi Win32_TimeZone -Comp $StrComputer -Credential $cred
  165. $SysItems3 = gwmi Win32_WmiSetting -Comp $StrComputer -Credential $cred
  166. $ProcItems1 = gwmi Win32_Processor -Comp $StrComputer -Credential $cred
  167. $MemItems1 = gwmi Win32_PhysicalMemory -Comp $StrComputer -Credential $cred
  168. $memItems2 = gwmi Win32_PhysicalMemoryArray -Comp $StrComputer -Credential $cred
  169. $DiskItems = gwmi Win32_LogicalDisk -Comp $StrComputer -Credential $cred
  170. $NetItems = gwmi Win32_NetworkAdapterConfiguration -Comp $StrComputer -Credential $cred |`
  171. where{$_.IPEnabled -eq "True"}
  172.  
  173.  
  174. # Populate General Sheet(1) with information
  175. foreach ($objItem in $GenItems1){
  176. $Sheet1.Cells.Item($intRow, 1) = $StrComputer
  177. Switch($objItem.DomainRole)
  178. {
  179. 0{$Sheet1.Cells.Item($intRow, 2) = "Stand Alone Workstation"}
  180. 1{$Sheet1.Cells.Item($intRow, 2) = "Member Workstation"}
  181. 2{$Sheet1.Cells.Item($intRow, 2) = "Stand Alone Server"}
  182. 3{$Sheet1.Cells.Item($intRow, 2) = "Member Server"}
  183. 4{$Sheet1.Cells.Item($intRow, 2) = "Back-up Domain Controller"}
  184. 5{$Sheet1.Cells.Item($intRow, 2) = "Primary Domain Controller"}
  185. default{"Undetermined"}
  186. }
  187. $Sheet1.Cells.Item($intRow, 3) = $objItem.Manufacturer
  188. $Sheet1.Cells.Item($intRow, 4) = $objItem.Model
  189. $Sheet1.Cells.Item($intRow, 5) = $objItem.SystemType
  190. $Sheet1.Cells.Item($intRow, 6) = $objItem.NumberOfProcessors
  191. $Sheet1.Cells.Item($intRow, 7) = $objItem.TotalPhysicalMemory / 1024 / 1024
  192. }
  193. foreach ($objItem in $GenItems2){
  194. $Sheet1.Cells.Item($intRow, 8) = $objItem.Caption
  195. $Sheet1.Cells.Item($intRow, 9) = $objItem.csdversion
  196. }
  197.  
  198. #Populate Systems Sheet
  199. foreach ($objItem in $SysItems1){
  200. $Sheet2.Cells.Item($intRow, 1) = $StrComputer
  201. $Sheet2.Cells.Item($intRow, 2) = $objItem.Name
  202. $Sheet2.Cells.Item($intRow, 3) = $objItem.SMBIOSbiosVersion
  203. $Sheet2.Cells.Item($intRow, 4) = $objItem.SerialNumber
  204. }
  205. foreach ($objItem in $SysItems2){
  206. $Sheet2.Cells.Item($intRow, 5) = $objItem.Caption
  207. }
  208. foreach ($objItem in $SysItems3){
  209. $Sheet2.Cells.Item($intRow, 6) = $objItem.BuildVersion
  210. }
  211.  
  212. #Populate Processor Sheet
  213. foreach ($objItem in $ProcItems1){
  214. $Sheet3.Cells.Item($intRowCPU, 1) = $StrComputer
  215. $Sheet3.Cells.Item($intRowCPU, 2) = $objItem.DeviceID+" "+$objItem.Name
  216. $Sheet3.Cells.Item($intRowCPU, 3) = $objItem.Description
  217. $Sheet3.Cells.Item($intRowCPU, 4) = $objItem.family
  218. $Sheet3.Cells.Item($intRowCPU, 5) = $objItem.currentClockSpeed
  219. $Sheet3.Cells.Item($intRowCPU, 6) = $objItem.l2cacheSize
  220. $Sheet3.Cells.Item($intRowCPU, 7) = $objItem.UpgradeMethod
  221. $Sheet3.Cells.Item($intRowCPU, 8) = $objItem.SocketDesignation
  222. $intRowCPU = $intRowCPU + 1
  223. }
  224.  
  225. #Populate Memory Sheet
  226. $bankcounter = 1
  227. foreach ($objItem in $memItems2){
  228. $MemSlots = $objItem.MemoryDevices +1
  229.  
  230. foreach ($objItem in $MemItems1){
  231. $Sheet4.Cells.Item($intRowMem, 1) = $StrComputer
  232. $Sheet4.Cells.Item($intRowMem, 2) = "Bank " +$bankcounter
  233. if($objItem.BankLabel -eq ""){
  234. $Sheet4.Cells.Item($intRowMem, 3) = $objItem.DeviceLocator}
  235. Else{$Sheet4.Cells.Item($intRowMem, 3) = $objItem.BankLabel}
  236. $Sheet4.Cells.Item($intRowMem, 4) = $objItem.Capacity/1024/1024
  237. $Sheet4.Cells.Item($intRowMem, 5) = $objItem.FormFactor
  238. $Sheet4.Cells.Item($intRowMem, 6) = $objItem.TypeDetail
  239. $intRowMem = $intRowMem + 1
  240. $bankcounter = $bankcounter + 1
  241. }
  242. while($bankcounter -lt $MemSlots)
  243. {
  244. $Sheet4.Cells.Item($intRowMem, 1) = $StrComputer
  245. $Sheet4.Cells.Item($intRowMem, 2) = "Bank " +$bankcounter
  246. $Sheet4.Cells.Item($intRowMem, 3) = "is Empty"
  247. $Sheet4.Cells.Item($intRowMem, 4) = ""
  248. $Sheet4.Cells.Item($intRowMem, 5) = ""
  249. $Sheet4.Cells.Item($intRowMem, 6) = ""
  250. $intRowMem = $intRowMem + 1
  251. $bankcounter = $bankcounter + 1
  252. }
  253. }
  254.  
  255.  
  256. #Populate Disk Sheet
  257. foreach ($objItem in $DiskItems){
  258. $Sheet5.Cells.Item($intRowDisk, 1) = $StrComputer
  259. Switch($objItem.DriveType)
  260. {
  261. 2{$Sheet5.Cells.Item($intRowDisk, 2) = "Floppy"}
  262. 3{$Sheet5.Cells.Item($intRowDisk, 2) = "Fixed Disk"}
  263. 5{$Sheet5.Cells.Item($intRowDisk, 2) = "Removable Media"}
  264. default{"Undetermined"}
  265. }
  266. $Sheet5.Cells.Item($intRowDisk, 3) = $objItem.DeviceID
  267. $Sheet5.Cells.Item($intRowDisk, 4) = $objItem.Size/1024/1024
  268. $Sheet5.Cells.Item($intRowDisk, 5) = $objItem.FreeSpace/1024/1024
  269. $intRowDisk = $intRowDisk + 1
  270. }
  271.  
  272. #Populate Network Sheet
  273. foreach ($objItem in $NetItems){
  274. $Sheet6.Cells.Item($intRowNet, 1) = $StrComputer
  275. $Sheet6.Cells.Item($intRowNet, 2) = $objItem.Caption+" (enabled)"
  276. $Sheet6.Cells.Item($intRowNet, 3) = $objItem.DHCPEnabled
  277. $Sheet6.Cells.Item($intRowNet, 4) = $objItem.IPAddress
  278. $Sheet6.Cells.Item($intRowNet, 5) = $objItem.IPSubnet
  279. $Sheet6.Cells.Item($intRowNet, 6) = $objItem.DefaultIPGateway
  280. $Sheet6.Cells.Item($intRowNet, 7) = $objItem.DNSServerSearchOrder
  281. $Sheet6.Cells.Item($intRowNet, 8) = $objItem.FullDNSRegistrationEnabled
  282. $Sheet6.Cells.Item($intRowNet, 9) = $objItem.WINSPrimaryServer
  283. $Sheet6.Cells.Item($intRowNet, 10) = $objItem.WINSSecondaryServer
  284. $Sheet6.Cells.Item($intRowNet, 11) = $objItem.WINSEnableLMHostsLookup
  285. $intRowNet = $intRowNet + 1
  286. }
  287.  
  288. $intRow = $intRow + 1
  289. $intRowCPU = $intRowCPU + 1
  290. $intRowMem = $intRowMem + 1
  291. $intRowDisk = $intRowDisk + 1
  292. $intRowNet = $intRowNet + 1
  293. }
  294. }
  295.  
  296. # =============================================================================================
  297. # Function Name 'ListComputers' - Enumerates ALL computer objects in AD
  298. # ==============================================================================================
  299. Function ListComputers {
  300. $strCategory = "computer"
  301.  
  302. $objDomain = New-Object System.DirectoryServices.DirectoryEntry
  303.  
  304. $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
  305. $objSearcher.SearchRoot = $objDomain
  306. $objSearcher.Filter = ("(objectCategory=$strCategory)")
  307.  
  308. $colProplist = "name"
  309. foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
  310.  
  311. $colResults = $objSearcher.FindAll()
  312.  
  313. foreach ($objResult in $colResults)
  314. {$objComputer = $objResult.Properties; $objComputer.name}
  315. }
  316.  
  317. # ==============================================================================================
  318. # Function Name 'ListServers' - Enumerates ALL Servers objects in AD
  319. # ==============================================================================================
  320. Function ListServers {
  321. $strCategory = "computer"
  322. $strOS = "Windows*Server*"
  323.  
  324. $objDomain = New-Object System.DirectoryServices.DirectoryEntry
  325.  
  326. $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
  327. $objSearcher.SearchRoot = $objDomain
  328. $objSearcher.Filter = ("(&(objectCategory=$strCategory)(OperatingSystem=$strOS))")
  329.  
  330. $colProplist = "name"
  331. foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
  332.  
  333. $colResults = $objSearcher.FindAll()
  334.  
  335. foreach ($objResult in $colResults)
  336. {$objComputer = $objResult.Properties; $objComputer.name}
  337. }
  338.  
  339. # ========================================================================
  340. # Function Name 'ListTextFile' - Enumerates Computer Names in a text file
  341. # Create a text file and enter the names of each computer. One computer
  342. # name per line. Supply the path to the text file when prompted.
  343. # ========================================================================
  344. Function ListTextFile {
  345. $strText = Read-Host "Enter the path for the text file"
  346. $colComputers = Get-Content $strText
  347. }
  348.  
  349. # ========================================================================
  350. # Function Name 'SingleEntry' - Enumerates Computer from user input
  351. # ========================================================================
  352. Function ManualEntry {
  353. $colComputers = Read-Host "Enter Computer Name or IP"
  354. }
  355.  
  356. # ==============================================================================================
  357. # Script Body
  358. # ==============================================================================================
  359. $erroractionpreference = "SilentlyContinue"
  360.  
  361.  
  362. #Gather info from user.
  363. Write-Host "********************************" -ForegroundColor Green
  364. Write-Host "Computer Inventory Script" -ForegroundColor Green
  365. Write-Host "By: Jesse Hamrick" -ForegroundColor Green
  366. Write-Host "Created: 04/15/2009" -ForegroundColor Green
  367. Write-Host "Contact: www.PowerShellPro.com" -ForegroundColor Green
  368. Write-Host "********************************" -ForegroundColor Green
  369. Write-Host " "
  370. Write-Host "Admin rights are required to enumerate information." -ForegroundColor Green
  371. Write-Host "Would you like to use an alternative credential?" -ForegroundColor Green
  372. $credResponse = Read-Host "[Y] Yes, [N] No"
  373. If($CredResponse -eq "y"){$cred = Get-Credential DOMAIN\USER}
  374. Write-Host " "
  375. Write-Host "Which computer resources would you like in the report?" -ForegroundColor Green
  376. $strResponse = Read-Host "[1] All Domain Computers, [2] All Domain Servers, [3] Computer names from a File, [4] Choose a Computer manually"
  377. If($strResponse -eq "1"){$colComputers = ListComputers | Sort-Object}
  378. elseif($strResponse -eq "2"){$colComputers = ListServers | Sort-Object}
  379. elseif($strResponse -eq "3"){. ListTextFile}
  380. elseif($strResponse -eq "4"){. ManualEntry}
  381. else{Write-Host "You did not supply a correct response, `
  382. Please run script again." -foregroundColor Red}
  383. Write-Progress -Activity "Getting Inventory" -status "Running..." -id 1
  384.  
  385. #New Excel Application
  386. $Excel = New-Object -Com Excel.Application
  387. $Excel.visible = $True
  388.  
  389. # Create 6 worksheets
  390. $Excel = $Excel.Workbooks.Add()
  391. $Sheet = $Excel.Worksheets.Add()
  392. $Sheet = $Excel.Worksheets.Add()
  393. $Sheet = $Excel.Worksheets.Add()
  394.  
  395. # Assign each worksheet to a variable and
  396. # name the worksheet.
  397. $Sheet1 = $Excel.Worksheets.Item(1)
  398. $Sheet2 = $Excel.WorkSheets.Item(2)
  399. $Sheet3 = $Excel.WorkSheets.Item(3)
  400. $Sheet4 = $Excel.WorkSheets.Item(4)
  401. $Sheet5 = $Excel.WorkSheets.Item(5)
  402. $Sheet6 = $Excel.WorkSheets.Item(6)
  403. $Sheet1.Name = "General"
  404. $Sheet2.Name = "System"
  405. $Sheet3.Name = "Processor"
  406. $Sheet4.Name = "Memory"
  407. $Sheet5.Name = "Disk"
  408. $Sheet6.Name = "Network"
  409.  
  410. #Create Heading for General Sheet
  411. $Sheet1.Cells.Item(1,1) = "Device_Name"
  412. $Sheet1.Cells.Item(1,2) = "Role"
  413. $Sheet1.Cells.Item(1,3) = "HW_Make"
  414. $Sheet1.Cells.Item(1,4) = "HW_Model"
  415. $Sheet1.Cells.Item(1,5) = "HW_Type"
  416. $Sheet1.Cells.Item(1,6) = "CPU_Count"
  417. $Sheet1.Cells.Item(1,7) = "Memory_MB"
  418. $Sheet1.Cells.Item(1,8) = "Operating_System"
  419. $Sheet1.Cells.Item(1,9) = "SP_Level"
  420.  
  421. #Create Heading for System Sheet
  422. $Sheet2.Cells.Item(1,1) = "Device_Name"
  423. $Sheet2.Cells.Item(1,2) = "BIOS_Name"
  424. $Sheet2.Cells.Item(1,3) = "BIOS_Version"
  425. $Sheet2.Cells.Item(1,4) = "HW_Serial_#"
  426. $Sheet2.Cells.Item(1,5) = "Time_Zone"
  427. $Sheet2.Cells.Item(1,6) = "WMI_Version"
  428.  
  429. #Create Heading for Processor Sheet
  430. $Sheet3.Cells.Item(1,1) = "Device_Name"
  431. $Sheet3.Cells.Item(1,2) = "Processor(s)"
  432. $Sheet3.Cells.Item(1,3) = "Type"
  433. $Sheet3.Cells.Item(1,4) = "Family"
  434. $Sheet3.Cells.Item(1,5) = "Speed_MHz"
  435. $Sheet3.Cells.Item(1,6) = "Cache_Size_MB"
  436. $Sheet3.Cells.Item(1,7) = "Interface"
  437. $Sheet3.Cells.Item(1,8) = "#_of_Sockets"
  438.  
  439. #Create Heading for Memory Sheet
  440. $Sheet4.Cells.Item(1,1) = "Device_Name"
  441. $Sheet4.Cells.Item(1,2) = "Bank_#"
  442. $Sheet4.Cells.Item(1,3) = "Label"
  443. $Sheet4.Cells.Item(1,4) = "Capacity_MB"
  444. $Sheet4.Cells.Item(1,5) = "Form"
  445. $Sheet4.Cells.Item(1,6) = "Type"
  446.  
  447. #Create Heading for Disk Sheet
  448. $Sheet5.Cells.Item(1,1) = "Device_Name"
  449. $Sheet5.Cells.Item(1,2) = "Disk_Type"
  450. $Sheet5.Cells.Item(1,3) = "Drive_Letter"
  451. $Sheet5.Cells.Item(1,4) = "Capacity_MB"
  452. $Sheet5.Cells.Item(1,5) = "Free_Space_MB"
  453.  
  454. #Create Heading for Network Sheet
  455. $Sheet6.Cells.Item(1,1) = "Device_Name"
  456. $Sheet6.Cells.Item(1,2) = "Network_Card"
  457. $Sheet6.Cells.Item(1,3) = "DHCP_Enabled"
  458. $Sheet6.Cells.Item(1,4) = "IP_Address"
  459. $Sheet6.Cells.Item(1,5) = "Subnet_Mask"
  460. $Sheet6.Cells.Item(1,6) = "Default_Gateway"
  461. $Sheet6.Cells.Item(1,7) = "DNS_Servers"
  462. $Sheet6.Cells.Item(1,8) = "DNS_Reg"
  463. $Sheet6.Cells.Item(1,9) = "Primary_WINS"
  464. $Sheet6.Cells.Item(1,10) = "Secondary_WINS"
  465. $Sheet6.Cells.Item(1,11) = "WINS_Lookup"
  466.  
  467. $colSheets = ($Sheet1, $Sheet2, $Sheet3, $Sheet4, $Sheet5, $Sheet6)
  468. foreach ($colorItem in $colSheets){
  469. $intRow = 2
  470. $intRowCPU = 2
  471. $intRowMem = 2
  472. $intRowDisk = 2
  473. $intRowNet = 2
  474. $WorkBook = $colorItem.UsedRange
  475. $WorkBook.Interior.ColorIndex = 20
  476. $WorkBook.Font.ColorIndex = 11
  477. $WorkBook.Font.Bold = $True
  478. }
  479.  
  480. If($credResponse -eq "y"){WMILookupCred}
  481. Else{WMILookup}
  482.  
  483. #Auto Fit all sheets in the Workbook
  484. foreach ($colorItem in $colSheets){
  485. $WorkBook = $colorItem.UsedRange
  486. $WorkBook.EntireColumn.AutoFit()
  487. clear
  488. }
  489. Write-Host "*******************************" -ForegroundColor Green
  490. Write-Host "The Report has been completed." -ForeGroundColor Green
  491. Write-Host "*******************************" -ForegroundColor Green
  492. # ========================================================================
  493. # END of Script
  494. # ========================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement