I have a few stories myself regarding Windows OS deployment over my career.
I started disk imaging using Norton Ghost back in the late-90s where I used it on my home computer.
Fast forward to November 2002 where the hospital I worked at was using MS-DOS boot disks with Norton Ghost to deploy Windows 98/98SE, then eventually Windows 2000. We had specific boot disks for specific models with specific NICs. I changed all that using Bart’s network boot disk from nu2.nu. It’s the blog entry from August 5, 2005, over 20 years ago!
Eventually we switched that over to burned CDs and then to bootable USB flash drives, however, at the time, very few computers booted from USB devices.
On to my next employer where again it was Norton Ghost and specific MS-DOS boot disks for specific models. I changed that over to a custom WinPE solution where you would boot up to a MS-DOS menu to wipe the disk with mbrwiz, partition the disk with a batch file script that ran diskpart commands and then GImageX to apply the WIM image. It worked brillantly for deploying Windows XP and Vista to bare metal.
When Windows 7 came out in 2009, I switched over to using MDT and Johan Arwidmark’s “Total Control” methodology for injecting drivers at boot time and it worked beautifully.
I last touched MDT in 2017 when I left my employer, but I still talked to the staff that worked there and MDT was still very much in use after I left.
Michael Niehaus is coming out with a free/community version of DeployR in 2026 that is supposed to replace the functionality of MDT and I am very excited to see that when it is released!
I was going back and forth with ChatGPT on creating a script that would launch procmon.exe silently via the task scheduler so I could monitor excel.exe when it saved any file ending in .csv, .xls or .xlsx. This went on for several hours, but I was not making any progress, even switching over to using Sysmon to see if I can have it do the logging I needed. Pro tip: if you have Sysmon running on a system, Procmon will be unable to load its driver and therefore will not work. You have to uninstall Sysmon first, then Procmon will work.
Procmon would start, I could see it in the task manager, but it wasn’t creating a PML file and I couldn’t terminate procmon with procmon.exe /terminate. I decided to go over to Gemini and chat back and forth with it and wasn’t making any progress there either. On a whim, I took the script that ChatGPT created and fed it into Grok.com. Grok starting churning away, checking the Internet for command line options and what did it find? ChatGPT hallucinated 2 of the command line options!
What was happening is that procmon was displaying an error, but since it was running under the SYSTEM account with /QUIET, there is no GUI to present to the user. Procmon was running in an errant state, but I couldn’t tell that. As soon as I removed the two invalid command line options, everything was right as rain.
The script ChatGPT created is too cool not to share, so here it is: https://github.com/adamleinss/PowerShellMisc/blob/master/procmon_task_scheduler.ps1. Along with this script, I uploaded the PMC file you can import into Procmon. The important bit is to make sure “Drop filter events” is checked under Filter so the PML file doesn’t increase in size unnecessarily.
This blog was started on July 23, 2005 and today marks the 20 year anniversary of this blog. In May of 2022, I decided to archive any posts before the year 2015 as they were quite dated. Making universal images for Windows 2000 and XP? Yeah, I don’t think anyone is interested in that anymore. Just for kicks: if you are feeling a bit nostalgic, you can read the old posts I saved to PDF format here. My entry point into computers started when my parents bought me my first computer in November 1993 which was delivered in December 1993. 31 years ago, wow where did the time go? I started off on Windows 3.1 and MS-DOS 5.0, quickly upgrading to MS-DOS 6.0 a few days later with the 3.5 floppy diskettes I was given. It was a 486-SX 33 MHz, 4MB of RAM, 250MB hard drive, 2400 baud modem, 14inch AOC monitor, and a BC-200 bubblejet ink printer from Milwaukee PC all for the low price of $1799.
Incidentally, I work less than 2 miles from the store where my first computer was purchased. 25 years after that event, I would be working in the technology department as a Systems Administrator.
Who knows where I will be working 20 years from today, will I still be alive?
Gather ye rosebuds while ye may, Old Time is still a-flying; And this same flower that smiles today Tomorrow will be dying.
It was July 2000 when I got RoadRunner cable Internet from Time Warner Cable. For years, I had waited for high speed Internet in Milwaukee, WI being held hostage on a 56K modem dial-up service. ExecPC was “the” ISP for southeastern Wisconsin and around 1999/2000, they were offering ISDN 128K, but not DSL. I was actually posting about Internet service in Milwaukee around the year 2000 on news groups (USENET). It appears at the time the speeds were around 170KB/sec on RoadRunner. ExecPC ISDN was 16KB/sec. On 56K dial-up, the best speeds you could get were 7KB/sec. Today, I’m getting 46,250KB/sec, a 27,106% increase over what I had back in 2000. Going from 56K dial-up to Roadrunner in 2000 was a 2329% increase.
Knock on wood, I’ve had Roadrunner (now Spectrum) for 25 years and for the most part, it’s been pretty solid. I even remember the first modem I had: the Motorola SB3100. It had a max download of 38Mbps and upload of 10Mbps. However, I wasn’t getting 38Mbps, I was getting around 1.5Mbps. It appears I was paying $29.95 which went to $49.95 in 2001. Using Perplexity AI, it came up with this for the change in Internet speeds from Time Warner/Spectrum over time:
2000: Road Runner launches widely with 1.5 Mbps as the standard speed 1.
2003: Speed tiers increase to 2 Mbps, then 3 Mbps in some regions 2.
Mid-2000s: 5–10 Mbps becomes common as networks are upgraded 1.
2011–2015: Major jumps, with 12–30 Mbps becoming standard, then 50 Mbps, and up to 300 Mbps in some markets 5.
2016–2025: Gigabit service (1000 Mbps) becomes available in many areas as fiber and DOCSIS 3.1 roll out; national average speed surpasses 200 Mbps 4.
Recently, I’ve been paying $68/month for Spectrum cable Internet and was getting roughly 475Mbps. I was on a deal for 1 year and that deal was running out in June 2025. The price was going to go to $93/month! I called and asked for a new deal which they refused to do without bundling either TV or phone service. I did not want to do this. I even told them AT&T fiber was available in my area for $55/month and they did not care. Months earlier, I had gotten a “door hanger” that stated AT&T fiber was coming to my area.
I was reluctant going to AT&T as the device they provide, the BGW320, is a combination router/modem. I have my own router equipment, so this would involve trying to figure out how to disable or bypass their own router and using my own equipment. However, saving $38/extra per month was going to be worth the pain of trying to figure it out.
Off I went to order new Internet service from the AT&T website. The first issue is they do a credit check during the online ordering process and I have my credit frozen at the top 3 credit bureaus. This failed and dumped me into a chat window, so I closed out and unfroze my credit and re-ran through the online ordering process: this time it succeeded. I picked my schedule date and time (very nice AT&T!).
The install date came and I got a text from my installer. It was scheduled between 8AM to 10AM and the installer was here by 8:20AM. It took approximately 3 hours for them to install it. That included installing a new line from the telephone pole to my house, installing a new AT&T service box on the side of the house, drilling a bigger hole in the side of the house and feeding the line into the same jack that Spectrum was using.
They also sent in a “home advisor expert” which was a nice touch, explaining details of the service, billing, promotions and the Smart Home Manager mobile app.
In terms of bypassing the AT&T router portion: I’ll describe what I did so I could use my own router. The AT&T router defaults to 192.168.1.254, so go to this IP address in a web browser when you want to configure the AT&T equipment settings. I had done research before hand and it was recommended to put the AT&T equiment on its own subnet. My default subnet addressing for my home network is 192.168.1.x, so I decided to change the AT&T router/modem to 192.168.0.254 as not to conflict with my own network addressing. You can do this by going to 192.168.1.254, then click on Home Network>Subnets & DHCP. You will need to enter the device access code from the bottom of BGW320.
Change the settings to what I have listed below if you want to use your own router equipment:
Next, go to Firewall>IP Passthrough. I recommed having your router connected so you can pick off its MAC address from the list.
Turn off everything in the firewall and packet filter.
You’ll also want to turn off the WiFi radios:
If you did everything correctly, when you log into your own router equipment, you should see an Internet IP address that is not 192.168.x.x. If you see that, that means you are “double NATed” and you need to re-trace your steps. I figured this out pretty quick when I couldn’t ping my home network no-ip.com alias from HetrixTools monitoring. I had changed my MAC address in my own router months ago and wrote down the “real” MAC address of the router, not the MAC address the router was masquerading as. I again suggest connecting your router right away to the BGW3200 and picking it off the list instead of manually keying in a MAC address.
Of course, after I had this running perfectly for 48 hours, Sunday morning came along where I have my TP-LINK router restart itself at 3AM every week and then it was back to a 192.168.0.68 address for the Internet IP address (double NAT problem). I spent quite a bit of time restarting the AT&T router/modem and my own router and the TP-LINK would not get a WAN address. I disabled the DHCP server on AT&T’s router/modem and it did not like that at all! I couldn’t get to the web interface of the AT&T router/modem anymore, so I ended up doing a hard reset with the little red button on the back.
After the hard reset of the AT&T router/modem and re-configuring everything, the TP-LINK router again got the proper WAN address from the AT&T router/modem. Based on a few postings of other people having the same problem as myself: I changed the DHCP lease to 5 minutes on the AT&T router/modem (instead of one day). The next week, when my personal router restarted, it got the proper Internet IP address. If for some reason this does not work: another suggestion I saw was unplugging/replugging the Ethernet cable going to the AT&T equipment on the TP-LINK side to force it to get a new IP address from the AT&T router/modem.
You can actually log into the Smart Home Manager app and see the IP address of your router to check if it’s really the proper Internet IP address without having to log into router directly.
Another issue I found was AT&T was blocking port 25 outbound for SMTP. As an example: I use PingPlotter to monitor my home network and I just use the default port of 25 to send e-mails for its alerts. This stopped working after switching to AT&T. The solution was simple: change port 25 to 587 and then the e-mails started working again.
So far, AT&T’s Internet service has been fanastic. I now get 375/375 instead of Spectrum’s 450/20. This will come up handy for work when I have to transfer files between work systems using my own Internet’s upstream bandwidth.
Take a trip down memory lane: Windows 95 running in electron! Comes with Doom, Microsoft Plus! Pack and Microsoft Word for Windows 95 pre-installed. It’s even got Internet access! Somehow my blog works on Windows 95’s Internet Explorer!
Searching around on the Internet, I found this site: https://copy.sh/v86/. You can run all kinds of operating systems from this site: very cool! My blog doesn’t work on Windows 2000’s Internet Explorer, but it does on Windows 95’s Internet Explorer???
Buckle up, this is going to be an interesting one. A few weeks ago, I started getting errors like this visiting web sites like McDonalds, Costco, Meijer, Pick ‘n Save:
Access Denied You don’t have permission to access “http://www.costco.com/?” on this server.
Reading through the thread, I found a post by smith6612 pointing to this link: https://www.akamai.com/us/en/clientrep-lookup/. I went and checked my IP address: it was listed as a web scrapper. These companies use Akamai as a CDN (Content Distribution Network) and according to the store IT support, my IP address was listed as a 10/10 or a very bad IP address in Akamai.
If I used a VPN, I could then access these sites just fine, because I was using a different IP address, but this is a not good long term solution. I attempted to contact Akamai to remove my IP address, but in so many terms, they told me to go pound sand as I was not their customer.
After contacting Spectrum technical support, they suggested a get a new cable modem which should give me a new IP address. I did so and….same IP address. ARGH! Anyways, I was already prepared with a plan B: it appears that if you change the MAC access of your router slightly, even by 1 character, Spectrum will see this as a new router and will give you a different IP address.
I changed the MAC address on the router and restarted the router and the cable modem: I was granted a new IP address! This new IP address was not blacklisted by Akamai.
The option to change a MAC address will vary by router model, but the TP-LINK AX5400 lets you change the MAC address in the router’s web GUI. The other option suggested by Spectrum was to leave the cable modem turned off for 24 hours (for the DHCP lease to expire) and then plug it back in, but that option may not be viable for many people unless you have some type of backup Internet option like a hotspot.
Changing my router’s MAC address and getting a new IP address worked for 24 hours before I was banned again. Not sure why, I removed some extensions from Chrome and tried a new IP address.
It appears after 4 days of removing several Chrome extensions I wasn’t actively using, it’s finally resolved. I suspect it may have to due to 2 Chrome extensions I had loaded in the past: one called “DownloadThemAll!” and another called “Video Download Helper”. I had used DownloadThemAll! to download some audio files from a website (freely available on said website) several months ago. I didn’t want to click 60+ individual links to download them, I wanted to click once and do it batch mode style. My theory is one of the websites I visit was using Akamai’s CDN service saw these extensions loaded in my browser and just assumed I was a bad actor, even though I wasn’t actively using the tools on their website and added me to a naughty list, which was then shared to the rest of Akamai’s customers and thus I was blocked from many websites.
I anticipate that some people may try to leave a comment on this post asking for help on changing your router’s MAC address: please do not. All post comments go through moderation (to prevent spam) and I rarely check the moderation queue unless I am logging into this site as an administrator. This blog is not a tech support helpdesk, please post your question on changing your router’s MAC address here instead: https://www.reddit.com/r/techsupport/.
So far I’ve only had 1 person try to leave a comment asking “how do I change my IP address?”. Again, this blog/web site is not a tech support helpdesk, please post all tech questions to https://www.reddit.com/r/techsupport/.
If you have any other helpful tips or interesting stories on this topic, feel free to leave those as comments and they will be approved depending on their quality.
Recently, I subscribed to Club Twit (twit.tv), which includes ad free videos for their tech shows. I loaded these shows up into Pocket Casts without any problems. I, however, wanted to watch these on my computer full screen. I blissfully logged into Pocket Casts on the web to see if I could play my podcasts there, then I was greeted with this message: that will be $40/year. Are you kidding me? They have a “deal” where the first year is $20, then year 2 and beyond is $40.
Podcast apps are just aggregators of RSS feeds and there’s no way I’m paying $40/year for the ability to watch videos hosted by a 3rd party. Researching around, I found Bluestacks which can run Android apps on Windows and indeed, I could load Pocket Casts and have it go full screen without any problems and it would sync my progress of watching the show to my phone. They even created an icon for Pocket Casts on my desktop, so all I had to do was click on the icon and it would auto-launch Bluestacks and Pocket Casts.
However, this $40 cash grab attempt left a bad taste in my mouth with Pocket Casts. In addition to that, I have issues with their playlist feature. I can add 3 episodes of a podcast to the queue, but it never plays the last item in the playlist automatically. So annoying when you are in the shower and not near the phone!
I decided to hunt around for a new podcast app. Podcast Addict was highly recommended on Reddit, so I loaded it up. It offered to restore my backup from the year 2011: yes, I had used this app in the past. Apparently, it saves the app data in a secret backup location on your Google Drive that you can’t see. Unfortunately, Podcast Addict doesn’t appear to sync between multiple devices, so I uninstalled it.
I then tried Podurama which looked very promising. They offer syncing between devices and their free tier allows playing of your podcasts on their website. Unfortunately, I could not get the syncing to work between my computer and phone, so I uninstalled that one as well.
I then stumbled onto Podcast Republic. While they do not offer playing podcasts from a website, they do offer syncing between devices and right from the get go, they say it’s free. I loaded it up into Bluestacks and I was able to sync my podcast progress to my phone. Hooray! The sync, however, does not seem to be “real-time”, but I was able to do it on demand from Settings>Account & syncing>Sync now. The app has ads which were not obtrusive at all, just a small banner at the very bottom of the app. I went ahead and paid the one time fee of $4 to remove the ads.
As an added bonus: I see they support streaming radio stations. I listen to a radio station on iHeartRadio using their official app. Unfortunately, they started putting ads on the screen in their app: annoying! I went to radio-browser.info, found the streaming URL for the station I listen to and added it in Podcast Republic. No more screen ads!
If you use my referral link, you can get an extra month of Internet service on the Calyx Institute network and I get an extra month of Internet service as well.
They use the T-Mobile network and your hotspot will have unlimited data.
Your mileage will vary based on location, but I get around 250Mbps using the hotspot. If you work from home, I highly suggest having a backup Internet option in case your main Internet goes out.
This should have been easy, but rarely anything in technology is. I listen to a podcast that is just a recording of what is broadcast on AM radio. The problem is if the producer of that show is on vacation or the station is having technical difficulties, it can take days for the podcast to be uploaded.
The first huddle is figuring out what the streaming URL is. This is well hidden, because the parent company probably wants you to go to their website to listen to the stream. You can do this right from a Chrome browser, open the Internet radio stream, then hit the F12 key, go to the Networking tab and looking for anything with m3u8, playlist or stream in the name:
In the above example (which is just a random radio station I picked), the URL is http://ample.revma.ihrhls.com/zc4245. If you copy and paste that into a browser, it starts playing the radio station.
There’s an easier way of getting this information and that’s from this website: https://www.radio-browser.info/. If you type in the station call letters “WISN” in the search, you get a URL of https://stream.revma.ihrhls.com/zc4245, which is very close to what we found before.
Now comes the fun part of figuring out how to record this stream to an audio file. This can be done by using the task scheduler to start up web browser and open our streaming web site address, such as "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" "https://stream.revma.ihrhls.com/zc4245". Just throw that into a batch file to make it easier to run.
Then you can use fmediaphiola (replace fmedia with phiola in the examples below and it should still work) with the loopback option to record the audio. First, figure out what device you want to record from by running this command:
fmedia --list-dev
You want a Playback/Loopback device that you usually hear things out of, probably your default audio device.
This records the Internet stream for 30 seconds and then saves a MP3 file with a low bit rate of 64kbps, since this is talk radio. If you wanted 3 hours and 30 minutes use --until 3:30. You’ll need to terminate msedge.exe after 3:30 hours, you can do this with a program called pskill. Download the Sysinternals Suite and then put this into a scheduled task after your show ends: pskill -t msedge.exe
This works, but is a bit clunky. Could we just record the Internet audio stream directly? Yes, there’s several options, starting with a GUI one: StreamWriter. This one works great, you just have to turn off the feature for splitting the stream into individual songs (Uncheck save separated tracksin the options). I just have one warning for this solution: this program only outputs the same steam up to 11 audio files with the same name, then it stops writing. It appends a 1, 2, etc. until it gets to 10 and then it stops creating new audio files. The fix is relatively easy with some Powershell code (you would run this some time after your stream ends and recording stops):
This renames all files ending in .AAC to the date the file was created on, such as 09.03.2022.aac and then removes any files ending in .AAC older than 2 days to keep things tidy. I recommend using a batch file to call the Powershell script, it makes it a lot easier to deal with in the task scheduler. In your batch file, just call it like this
ffmpeg can also record Internet radio streams if you prefer a command line option (accepts HH:mm:ss for time notation, I just did 30 seconds here as an example):
VLC supports recording Internet audio streams as well, though the command line is a bit tricky to figure out, but this seems to work (note the stop time is in seconds, so convert the time you want accordingly into the number of seconds):
To remove commercials from the audio file, I like using mp3DirectCut. You can mark the beginning of the commercials with the B key and then the end with the N key to mark that section and then hit the DELETE key and poof, that section of the MP3 file is gone. No re-encoding of the file required. When done, do a File>Save as and save it as a new file.
To get the audio file over to your Android phone, I like using SolidExplorer’s FTP server option and then using WinSCP to FTP the file over to a folder on the phone. For listening: I like mABook. The skip ahead and rewind is user defined, I set mine to 1 minute and 5 minute intervals, so if you don’t want to remove commercials and just want to try skipping them in the playback app, you can usually get good results fast forwarding in either small or large chunks (long chunks usually being around the hour break).