rj07thomas

Enumerate W10/W11 devices in AD

Jul 13th, 2023
447
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.58 KB | None | 0 0
  1. Clear-Host
  2.  
  3. del .\allDevices.csv
  4.  
  5. $allDevices = Get-ADComputer -LDAPFilter "(&(ObjectCategory=Computer)(!OperatingSystem=*Server*))" -Properties OperatingSystem,OperatingSystemVersion
  6. $allDeviceNames = $allDevices.Name
  7.  
  8. [int]$below22H2 = 0
  9. [int]$above22H2 = 0
  10.  
  11. [int]$xAxis = 0
  12. [int]$yAxis = 0
  13.  
  14. [string]$mergeDetails = ""
  15.  
  16. $deviceArray = New-Object 'object[,]' $allDeviceNames.Count,3
  17.  
  18. $W101507 = 10240
  19. $W101511 = 10586
  20. $W101607 = 14393
  21. $W101703 = 15063
  22. $W101709 = 16299
  23. $W101803 = 17134
  24. $W101809 = 17763
  25. $W101903 = 18362
  26. $W101909 = 18363
  27. $W102004 = 19041
  28. $W1020H2 = 19042
  29. $W1021H1 = 19043
  30. $W1021H2 = 19044
  31. $W1022H2 = 19045
  32. $W1121H2 = 22000
  33. $W1122H2 = 22621
  34.  
  35. ForEach($device in $allDevices)
  36. {
  37. $osData = $device.OperatingSystemVersion
  38. $osBuild = ($osData -split '[()]')[1]
  39.  
  40. Write-Host ""
  41.  
  42. switch($osBuild)
  43. {
  44. $W101507
  45. {
  46. $mergeDetails = ""
  47. $deviceArray[$xAxis,$yAxis] = $device.Name
  48. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  49. $y++
  50. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  51. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  52. $y++
  53. $deviceArray[$xAxis,$yAxis] = $osBuild
  54. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  55. $y++
  56. $mergeDetails = $mergeDetails + ",Version 1507"
  57. $mergeDetails | Out-File .\allDevices.csv -Append
  58. $below22H2++
  59. }
  60.  
  61. $W101511
  62. {
  63. $mergeDetails = ""
  64. $deviceArray[$xAxis,$yAxis] = $device.Name
  65. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  66. $y++
  67. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  68. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  69. $y++
  70. $deviceArray[$xAxis,$yAxis] = $osBuild
  71. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  72. $y++
  73. $mergeDetails = $mergeDetails + ",Version 1511"
  74. $mergeDetails | Out-File .\allDevices.csv -Append
  75. $below22H2++
  76. }
  77.  
  78. $W101607
  79. {
  80. $mergeDetails = ""
  81. $deviceArray[$xAxis,$yAxis] = $device.Name
  82. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  83. $y++
  84. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  85. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  86. $y++
  87. $deviceArray[$xAxis,$yAxis] = $osBuild
  88. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  89. $y++
  90. $mergeDetails = $mergeDetails + ",Version 1607"
  91. $mergeDetails | Out-File .\allDevices.csv -Append
  92. $below22H2++
  93. }
  94.  
  95. $W101703
  96. {
  97. $mergeDetails = ""
  98. $deviceArray[$xAxis,$yAxis] = $device.Name
  99. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  100. $y++
  101. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  102. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  103. $y++
  104. $deviceArray[$xAxis,$yAxis] = $osBuild
  105. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  106. $y++
  107. $mergeDetails = $mergeDetails + ",Version 1703"
  108. $mergeDetails | Out-File .\allDevices.csv -Append
  109. $below22H2++
  110. }
  111.  
  112. $W101709
  113. {
  114. $mergeDetails = ""
  115. $deviceArray[$xAxis,$yAxis] = $device.Name
  116. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  117. $y++
  118. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  119. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  120. $y++
  121. $deviceArray[$xAxis,$yAxis] = $osBuild
  122. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  123. $y++
  124. $mergeDetails = $mergeDetails + ",Version 1709"
  125. $mergeDetails | Out-File .\allDevices.csv -Append
  126. $below22H2++
  127. }
  128.  
  129. $W101803
  130. {
  131. $mergeDetails = ""
  132. $deviceArray[$xAxis,$yAxis] = $device.Name
  133. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  134. $y++
  135. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  136. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  137. $y++
  138. $deviceArray[$xAxis,$yAxis] = $osBuild
  139. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  140. $y++
  141. $mergeDetails = $mergeDetails + ",Version 1803"
  142. $mergeDetails | Out-File .\allDevices.csv -Append
  143. $below22H2++
  144. }
  145.  
  146. $W101809
  147. {
  148. $mergeDetails = ""
  149. $deviceArray[$xAxis,$yAxis] = $device.Name
  150. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  151. $y++
  152. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  153. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  154. $y++
  155. $deviceArray[$xAxis,$yAxis] = $osBuild
  156. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  157. $y++
  158. $mergeDetails = $mergeDetails + ",Version 1809"
  159. $mergeDetails | Out-File .\allDevices.csv -Append
  160. $below22H2++
  161. }
  162.  
  163. $W101903
  164. {
  165. $mergeDetails = ""
  166. $deviceArray[$xAxis,$yAxis] = $device.Name
  167. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  168. $y++
  169. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  170. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  171. $y++
  172. $deviceArray[$xAxis,$yAxis] = $osBuild
  173. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  174. $y++
  175. $mergeDetails = $mergeDetails + ",Version 1903"
  176. $mergeDetails | Out-File .\allDevices.csv -Append
  177. $below22H2++
  178. }
  179.  
  180. $W101909
  181. {
  182. $mergeDetails = ""
  183. $deviceArray[$xAxis,$yAxis] = $device.Name
  184. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  185. $y++
  186. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  187. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  188. $y++
  189. $deviceArray[$xAxis,$yAxis] = $osBuild
  190. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  191. $y++
  192. $mergeDetails = $mergeDetails + ",Version 1909"
  193. $mergeDetails | Out-File .\allDevices.csv -Append
  194. $below22H2++
  195. }
  196.  
  197. $W102004
  198. {
  199. $mergeDetails = ""
  200. $deviceArray[$xAxis,$yAxis] = $device.Name
  201. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  202. $y++
  203. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  204. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  205. $y++
  206. $deviceArray[$xAxis,$yAxis] = $osBuild
  207. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  208. $y++
  209. $mergeDetails = $mergeDetails + ",Version 2004"
  210. $mergeDetails | Out-File .\allDevices.csv -Append
  211. $below22H2++
  212. }
  213.  
  214. $W1020H2
  215. {
  216. $mergeDetails = ""
  217. $deviceArray[$xAxis,$yAxis] = $device.Name
  218. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  219. $y++
  220. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  221. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  222. $y++
  223. $deviceArray[$xAxis,$yAxis] = $osBuild
  224. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  225. $y++
  226. $mergeDetails = $mergeDetails + ",Version 20H2"
  227. $mergeDetails | Out-File .\allDevices.csv -Append
  228. $below22H2++
  229. }
  230.  
  231. $W1021H1
  232. {
  233. $mergeDetails = ""
  234. $deviceArray[$xAxis,$yAxis] = $device.Name
  235. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  236. $y++
  237. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  238. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  239. $y++
  240. $deviceArray[$xAxis,$yAxis] = $osBuild
  241. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  242. $y++
  243. $mergeDetails = $mergeDetails + ",Version 21H1"
  244. $mergeDetails | Out-File .\allDevices.csv -Append
  245. $below22H2++
  246. }
  247.  
  248. $W1021H2
  249. {
  250. $mergeDetails = ""
  251. $deviceArray[$xAxis,$yAxis] = $device.Name
  252. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  253. $y++
  254. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  255. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  256. $y++
  257. $deviceArray[$xAxis,$yAxis] = $osBuild
  258. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  259. $y++
  260. $mergeDetails = $mergeDetails + ",Version 21H2"
  261. $mergeDetails | Out-File .\allDevices.csv -Append
  262. $below22H2++
  263. }
  264.  
  265. $W1022H2
  266. {
  267. $mergeDetails = ""
  268. $deviceArray[$xAxis,$yAxis] = $device.Name
  269. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  270. $y++
  271. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  272. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  273. $y++
  274. $deviceArray[$xAxis,$yAxis] = $osBuild
  275. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  276. $y++
  277. $mergeDetails = $mergeDetails + ",Version 22H2"
  278. $mergeDetails | Out-File .\allDevices.csv -Append
  279. $above22H2++
  280. }
  281.  
  282. $W1121H2
  283. {
  284. $mergeDetails = ""
  285. $deviceArray[$xAxis,$yAxis] = $device.Name
  286. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  287. $y++
  288. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  289. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  290. $y++
  291. $deviceArray[$xAxis,$yAxis] = $osBuild
  292. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  293. $y++
  294. $mergeDetails = $mergeDetails + ",Version 21H2"
  295. $mergeDetails | Out-File .\allDevices.csv -Append
  296. $above22H2++
  297. }
  298.  
  299. $W1122H2
  300. {
  301. $mergeDetails = ""
  302. $deviceArray[$xAxis,$yAxis] = $device.Name
  303. $mergeDetails = $mergeDetails + $deviceArray[$xAxis,$yAxis]
  304. $y++
  305. $deviceArray[$xAxis,$yAxis] = $device.OperatingSystem
  306. $mergeDetails = $mergeDetails + "," + $deviceArray[$xAxis,$yAxis]
  307. $y++
  308. $deviceArray[$xAxis,$yAxis] = $osBuild
  309. $mergeDetails = $mergeDetails + ",Build " + $deviceArray[$xAxis,$yAxis]
  310. $y++
  311. $mergeDetails = $mergeDetails + ",Version 22H2"
  312. $mergeDetails | Out-File .\allDevices.csv -Append
  313. $above22H2++
  314. }
  315. }
  316. $y = 0
  317. $x++
  318. }
  319. Write-Host ""
  320.  
  321. $below22H2
  322. $above22H2
  323.  
Advertisement
Add Comment
Please, Sign In to add comment