-
Posts
12,134 -
Joined
-
Last visited
Content Type
Forums
Status Updates
Blogs
Events
Gallery
Downloads
Store Home
Everything posted by Windows7ge
-
Hot take, but Styrofoam in general should be a war crime.
It's fucking everywhere.
I wish I could meet the unpaid intern who decided to ship these laptops using this. Its even stuck inside USB ports, SC slots, docking ports, Ethernet, and the static electricity is making them stick to litterally everything.
154 laptops, I wanna say I managed to remove 95% of the mess but the rest is going to be all over my workbench tomarrow.
-
Fight fire with fire!!
Time to contact Electroboom and ask if you can borrow his tools.
- dual290x and Windows7ge
- 2
-
@Moonzy Corruption of the youth, for teaching them to use it in the first place >:3
-
Huh, no shot it worked first freaking try. o_O
Over Thanks Giving I wrote some code...
using System; using System.IO; using System.Management; using Microsoft.Win32; using System.Text; using System.Collections.Generic; namespace HardwareDatabaseLogger { internal class Program { static void Main(string[] args) { Console.Title = "Hardware Database Logger"; Int64 memory = 0; bool serialExists = false; string[] system = new string[8]; string temp; RegistryKey pRegKey = Registry.LocalMachine; pRegKey = pRegKey.OpenSubKey(@"HARDWARE\DESCRIPTION\System\BIOS"); Object spn = pRegKey.GetValue("SystemProductName"); Object bios_vendor = pRegKey.GetValue("BIOSVendor"); Object system_sku = pRegKey.GetValue("SystemSKU"); ManagementObjectSearcher mySerialObject = new ManagementObjectSearcher("select SerialNumber from Win32_BIOS"); foreach (ManagementObject obj in mySerialObject.Get()) { system[0] = obj["SerialNumber"].ToString(); } switch (spn.ToString()) { case "HP EliteBook 840 G5": system[1] = "ELITEBOOK 840 G5"; break; case "HP EliteBook 840 G6": system[1] = "ELITEBOOK 840 G6"; break; default: system[1] = spn.ToString(); break; } switch (bios_vendor.ToString()) { case "HP": system[2] = system_sku.ToString(); break; default: system[2] = "Could not locate vendor: " + bios_vendor.ToString(); break; } ManagementObjectSearcher myProcessorObject = new ManagementObjectSearcher("select Name from Win32_Processor"); foreach (ManagementObject obj in myProcessorObject.Get()) { system[3] = obj["Name"].ToString(); } switch (system[3]) { case "Intel(R) Core(TM) i5-7300U CPU @ 2.60GHz": system[3] = "CORE i5 7300U 2.60"; break; case "Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz": system[3] = "CORE i5 8250U 1.60"; break; case "Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz": system[3] = "CORE i5 8350U 1.70"; break; case "Intel(R) Core(TM) i5-8365U CPU @ 1.60GHz": system[3] = "CORE i5 8365U 1.60"; break; case "Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz": system[3] = "CORE i7 8650U 1.90"; break; case "Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz": system[3] = "CORE i7 8665U 1.90"; break; default: //Leaves raw CPU name in system array. break; } ManagementObjectSearcher myMemoryObject = new ManagementObjectSearcher("select Capacity from Win32_PhysicalMemory"); foreach (ManagementObject obj in myMemoryObject.Get()) { memory += Convert.ToInt64(obj["Capacity"]); } system[4] = (memory / 1048576).ToString(); DriveInfo[] allDrives = DriveInfo.GetDrives(); foreach (DriveInfo d in allDrives) { if (d.DriveType == DriveType.Fixed) { temp = (Convert.ToInt64(d.TotalSize) / 1073741824).ToString(); switch (temp) { case "111": system[5] += "128 SSD "; break; case "119": system[5] += "128 SSD "; break; case "237": system[5] += "256 SSD "; break; case "238": system[5] += "256 SSD "; break; case "476": system[5] += "512 SSD "; break; case "952": system[5] += "1024 SSD "; break; default: system[5] += temp + " "; break; } } } ManagementObjectSearcher myVideoObject = new ManagementObjectSearcher("select Name from Win32_VideoController"); foreach (ManagementObject obj in myVideoObject.Get()) { if (obj["Name"].ToString() != "Microsoft Basic Display Adapter") { switch (obj["Name"].ToString()) { case "Intel(R) HD Graphics 620": system[6] += "INTEL HD GRAPHICS 620-128MB "; break; case "Intel(R) UHD Graphics 620": system[6] += "INTEL UHD GRAPHICS 620-128MB "; break; default: system[6] += obj["Name"].ToString(); break; } } } ManagementObjectSearcher myNetworkObject = new ManagementObjectSearcher("select Name from Win32_NetworkAdapter"); foreach (ManagementObject obj in myNetworkObject.Get()) { switch (obj["Name"].ToString()) { case "Intel(R) Dual Band Wireless-AC 8265": system[7] = "B/G/N/AC"; break; case "Intel(R) Wi-Fi 6 AX200 160MHz": system[7] = "B/G/N/AC/AX"; break; } } StringBuilder log = new StringBuilder(); List<string> current = null; foreach (var line in File.ReadAllLines("n:/database.txt")) { if (line.Contains(system[0]) && current == null) serialExists = true; } if (serialExists == false) { log.Append(system[0] + "," + system[1] + "," + system[2] + "," + system[3] + "," + system[4] + "," + system[5] + "," + system[6] + "," + system[7] + "\n"); File.AppendAllText("n:/database.txt", log.ToString()); log.Clear(); } } } }
So what this CLI application does is it pulls all of a computers hardware information and uploads it to a network database file.
With the assistance of some batch scripts and having access to C:\ during WinPE deployment I can inject my program into up to 36 simultaneous clients before they boot Windows for the first time.
When they do boot for the first time they connect to the company Wi-Fi and this program is executed. After execution the script deletes everything that ran including itself. Nothing shows up in the Recycle Bin though data recovery tools might be able to do something technically.
The end result is instead of meticulously one by one pairing Serial Numbers with computer hardware information which is an all day long process I can now pair 36 computer S/N's with their respective hardware and install Windows in about 30 minutes.
The output file looks like this:
2TK9490H4H,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 2TK9490J10,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG0132V3F,ELITEBOOK 840 G6,9UF58UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG0132WVC,ELITEBOOK 840 G6,9UF58UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG0132XT1,ELITEBOOK 840 G6,9UF58UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG0132XVH,ELITEBOOK 840 G6,9UF58UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG0132XW0,ELITEBOOK 840 G6,7QY37UPP#ABA,CORE i5 8365U 1.60,16384,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG021C2GM,ELITEBOOK 840 G6,7ZU52UP#ABA,CORE i7 8665U 1.90,16384,512 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG021C2GR,ELITEBOOK 840 G6,7ZU52UP#ABA,CORE i7 8665U 1.90,16384,512 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG0239C10,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG03354MZ,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG0362XTG,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG0395X38,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG0432G9Q,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG045696V,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG0462DSW,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG9394Y94,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG9394YR1,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX 5CG93952B5,ELITEBOOK 840 G6,7QY37UP#ABA,CORE i5 8365U 1.60,8192,256 SSD ,INTEL UHD GRAPHICS 620-128MB ,B/G/N/AC/AX
I had to do this manually before. Now the server can do this for me.
This is only BETAv1. This program only just got born and it worked on the first try. That's fantastic. I look forward to refining it and building it out to be more capable.
-
Network upgrades complete. 50Gig uplink, up to 96 1Gig client connections.
Unfortunately I did discover HPE did something stupid. Turns out slot #3 is only running at 4x Gen2 through the chipset for no particular reason.
So at most it has a maximum of 2GB/s performance. I don't think I'm saturating the NIC even though it should be enough in theory. I don't know if going through Intel's QPI link to CPU2 would be faster though.
-
2 hours ago, da na said:
That is utterly incredible.
How are the 4 transcievers divided on the Cisco switches? They're 2.5G each, aren't they? So... the more you plug in, the more gigabit ports you can use at full speed simultaneously...? Or is it more for redundancy
Ports 2-12,25,26 VLAN 10
Ports 13-24,27,28 VLAN 20
Both switches.
On the server side the ports are bonded to behave like a switch so it's one logical network but multiple logical switches.
By evenly dividing the load across each link this gives both switches 2.25GB/s connection to the server. I need to do performance testing but I have real world tested the server pushing 3.85GB/s over the network. With 50Gig now I should be able to go higher.