Microsoft Endpoint Manager: A LouMug Presentation

This past November, I got the opportunity to present at the Louisville Microsoft Users Group. The topic this time was Microsoft Endpoint Manager, where I discussed the components of Endpoint Manager and how we are using the platform at work. The interaction from the audience was fantastic, with several people asking great questions and giving comments. A recording of the talk has been uploaded to YouTube for anyone who wants to watch. The slide deck is also available below, with embedded links to several resources.

Have fun,
Tony

FRAM Mod for N64 Details

I’ve been working on this story for a while now. Both as a blog post and as a stream/YouTube video. Everything started a few months ago when I discovered my N64 Controller Pak from the late 90s had stopped working. What was the Controller Pak? It was a memory card for saving or transferring save files for Nintendo 64 games. The Controller Pak wasn’t required for all games. Some, such as Super Mario 64 using memory in the game cartridge for saves. Other games, like Turok, had no cartridge memory and entirely relied on the Controller Pak. And then others, like Perfect Dark, could use both cartridge memory or a Controller Pak.

Anyway, my Controller Pak was not working, and I knew it was time to attempt a repair. I wasn’t worried about the failure. The Controller Pak used a 3.3V coin-cell battery to keep the contents of the SRAM stored. At 20+ years old, a dead battery was a common problem for these Paks. I assumed all I needed to do was solder a new battery into the Controller Pak, and everything would be working again. A quick order to eBay, and a few days later, I had a 10x of CR2032 batteries with solder tabs. I also purchased three more official Controller Paks just in case I had issues.

Continue reading “FRAM Mod for N64 Details”

Boss Rally – Top Gear Rally’s PC Brother

Have you ever had one of those moments when clicking through Wikipedia you learn something that blew your mind? I had one of those moments in 2020. I was clicking through some pages about Top Gear games when I landed on Top Gear Rally and saw the sentence, “In 1999, the game was ported to Microsoft Windows as Boss Rally.” What? I had played Top Gear Rally on my Nintendo 64 since 1997 and never knew a PC version existed. Clicking the link to Boss Rally’s Wikipedia page revealed the original developer of TGR ported the game.  I knew at that moment I had to find a copy.

Continue reading “Boss Rally – Top Gear Rally’s PC Brother”

The Perfect PS2 Fan Upgrade

I want to give a big shout-out to the online retailer The Peaceful Outcome (TPO) and their PS2 Noctua upgrade kit. If you have a PS2 with a loud fan, then this kit is perfect.

Backstory: I have owned my PS2 since Christmas 2001. The entire time the fan in the system was loud. I always assumed that was normal since I had never really listed to another PS2 in a quiet setting. Fast forward to 2019, and while walking in my neighborhood, I found a PS2 in a box that was sat out on the street for junk pickup. It was a later revision fat PS2 that lacked the firewire port. I grabbed the unit, took it home, and discovered there were no significant issues. I was surprised to learn the system was virtually silent when compared to my PS2.

Recently I was playing through the original Final Fantasy XII, and the noise of the PS2 finally got to me. Other members of the RetroRGB Discord server had talked about the fan upgrade, so I went to eBay and bought one for myself. I felt $35 for the Noctua fan, fan guard, 3d printed rear panel parts, and wiring pigtail more than reasonable, and the results were impressive. The installation took less than one hour, and my PS2 is now completely silent. Check out the before and after.

For instructions on removing the original fan from a PS2, I recommend following the guide posted at iFixit.com. The process involves completely removing the PS2 mainboard from the bottom shell to get the fan unplugged from its header.

Links to the TPO’s Amazon and eBay listing are below (these are not affiliate links).
https://www.amazon.com/TPO-Playstation-Quiet-Upgrade-Modification-30000/dp/B0854FJ4RR
https://www.ebay.com/itm/203261375555

Have fun.
-Tony

Update Configuration Manager Application Content Locations

I had planned to write this excellent article about using PowerShell to update the content locations of all the applications in an SCCM environment. At work, we moved the source files to a new file server and needed to update 350+ deployment types. Of course, there were some challenges. The biggest is Configuration Manager’s PowerShell cmdlet to get deployment types doesn’t have an explicit property to list the content location. You can still get the information from the cmdlet, but it’s located in the XML data of the object. A PowerShell script to update the content location would have required parsing that XML to get the current location and using the Set-CMDemploymentType cmdlet to update the deployment with the new location.

As usual, someone already did a better job. Nickolaj Anderson from MSEndpointMgr.com wrote a great PowerShell tool with a GUI to help find and update applications. I recommend visiting his website to learn the details.

https://msendpointmgr.com/2017/02/23/configmgr-content-source-update-tool-version-1-0-2-released/

https://msendpointmgr.com/2015/08/26/configmgr-content-source-update-tool-1-0-0/

Have fun.
-Tony

Microsoft has Mixed GPOs into their Device Profiles

Microsoft is about to make Windows 10 device configurations in Endpoint Manager/Intune way more powerful. While digging through Microsoft’s documentation about Windows MDM, I noticed a new list of CSP policies prefixed with “ADMX_”. GitHub commits indicate the documentation of these policies didn’t exist until late last year. That wouldn’t be much to talk about, except these new policies match Windows’ built-in group policies.

Take a moment to let that statement sink in. One of the biggest frustrations I’ve run into with Intune device profiles has been the lack of parity with group policies. Some settings, like configuring screensavers to be secure, aren’t available in Windows’ MDM. The only way I’ve managed to work around these device policy limitations has been to use PowerShell scripts.

The ADMX backed policies’ documentation all say they are available in the “latest Windows 10 Insider Preview Build”. And finally, Microsoft released the first Windows Insider Preview Build for 2021, which included the needed functionality. As it stands right now, the process of using the new ADMX backed policies isn’t easy. It requires creating custom device profiles, knowing the correct OMA-URI, and how to format the data. Getting the correct format involves looking at the corresponding .admx file built into Windows. My hope is Microsoft will add all of these policies to the “Administrative Template” based device profiles quickly. Some already exist, but it is a fraction of the settings available in GPOs.

I hope to share more info on using ADMX backed policies as Windows 10 21H1 becomes available.

As always, have fun
-Tony

Review of the Western Digital My Passport Wireless Pro

In 2019 purchased a Western Digital My Passport Wireless Pro external hard drive to take on trips so kids in the car could watch videos but not suck down all the data from the cell networks. It’s a cool device, sporting a regular 2.5″ laptop hard drive, 6400mAh battery that could be used to power the device while on the go or charge a USB device, and stream videos and music to devices using the built-in Plex Server. As you can guess, Plex was the main reason to get the device. I already ran a Plex Server in my home for video/music streaming and felt that would be a solution for carrying large amounts of videos without having to worry about filling up all the storage space of tablets or phones. I also happened to be going on a cruise that year where access to the Internet would cost up to $10 a day to get access to video streaming services.

Overall, I felt the Passport Wireless Pro was a useful device. It was easy and fast to load content onto the device using USB3. Setting up Plex was the same as any other platform, point the libraries to their respective folders, and allow the application to sync all the metadata. It wasn’t without issues, though.

  1. You need to be proactive and set up Plex to work without authentication. How-To Geek has a good article about this. Go into the Plex Server’s network settings and add “192.168.0.1/255.255.255.0” to the setting “List of IP addresses and networks that are allowed without auth.” Doing this allows apps and the web interface to work without going through Plex’s authentication servers.
  2. It can be unreliable sometimes. Changing the Passport’s optimization mode to “Battery Life” made Plex streaming stop working, so I recommend leaving it in “Performance” mode. Still, there are times when streaming to the Android apps doesn’t work. The web interface fairs better, but Chrome on Android has a stutter every few seconds. I am using an older tablet that’s causing the issue.

From a security perspective, the Passport Wireless Pro is not a well-maintained device. The drive was released in 2016 as a follow up to the original 2014 Passport Wireless. The information of the Linux distro has a build date of 2015. The kernel, 3.10.24, was released in 2013. Ezploit.cz has an article from August 2019 that lists some of the shortcomings. I’d recommend not connecting the Passport to networks you are not familiar with and configuring passwords for the local admin and root accounts.

I looked to see if it was possible to install the Emby media server onto the Passport and use it as an alternative to Plex. Sadly, I was stopped short by a lack of necessary dependencies in Linux. A few Emby community members tried alternate methods of getting Emby to run on the device, but that appears to have stalled out.

Anyway, I thought you would find this information useful if you’re thinking of grabbing a My Passport Pro.

Have fun.
-Tony

GCHD Mk-II Operations Manual

For everyone interested, I’ve uploaded a scanned copy of the operations manual of EON’s GCHD Mk-II video adapter to the Internet Archive. I couldn’t find a copy of it anywhere online recently and needed to figure out how to change some settings on the adapter I own. I hope that uploading the manual to the Internet Archive will allow it to be preserved for as long as possible.

If you’re not aware of the GCHD Mk-II, it is a plug-n-play adapter for the Nintendo GameCube that converts the system’s digital video signal to HDMI and Component video. The GCHD is an awesome product and one of the easiest ways to get high-quality video from a GameCube. The GCHD can also convert 480i and 240p video sources to 480p which can lead to better image quality on fixed pixel displays.

GCHD and other products like the Carby from Insurrection Industries also show what can happen when people in a community share their ideas and skills. Without Ingo Korb and his GCVideo opensource project, none of these products would exist.

If you want to learn more about getting the best video quality from your GameCube, I recommend watching RGB 316 by My Life in Gaming.

If you are interested in purchasing a GCHD Mk-II for yourself then check out the links below. (these are affiliate links)

GCHD Mk-II @ Amazon: https://amzn.to/2ZPdg0H
GCHD Mk-II @ CastleMania Games: https://castlemaniagames.com/products/eon-purple-gchd-mkii-hdmi-adapter-nintendo-gamecube-dual-output-no-lag?ref=ymwsbyu8gwr
Insurrection Industries Carby @ Amazon: https://amzn.to/2WIqs5v
Insurrection Industries Carby @ CastleMania Games: https://castlemaniagames.com/products/insurrection-industries-carby-version-2-black?ref=ymwsbyu8gwr

The Better N64 Joystick Repair

Today I’m going to describe the installation and review of replacement N64 joystick parts sold by Kitsch-Bent. As described by their website, these parts are made of polyoxymethylene plastic for durability, and I’m impressed with the quality. They look like OEM parts.

https://store.kitsch-bent.com/product/n64-joystick-gears

Why do N64 joysticks wear out? The answer is twofold. The bottom of the stick rides in a bowl and grinds the surface of the bowl away over time. That is the white powder you eventually see around the base of the joystick. As the bowl wears away, the joystick sinks lower into its assembly, and this causes the movement to feel sloppy. On top of that, the joystick slides inside slots to push gears around. The slots will eventually lose their shape causing joystick to have too much play.

Disassembly of the N64 controller is very easy. There are several Philips screws around the perimeter of the controller, plus two more screws in the expansion port. Once you are inside the controller, the next step is to move the trigger button from its home on the backside of the joystick assembly. Now, unplug the joystick from the main PCB and unscrew it from the shell. Finally, carefully remove the last screw from the joystick assembly. There is a spring inside the assembly pushing the joystick down into the bowl, and when the screw is released, pieces may go flying.

The inside of the joystick assembly may look complicated, but the mechanics are simple. As the joystick moves around, it pushes the gears, which turn optical encoder wheels. The optical encoders turn the analog movement into digital numbers used by the controller to determine how far the joystick has moved from its home position. This is the same technology used in older computer mice used. The 8-Bit Guy did a video on how mice work if you want to learn more.

Installing the new parts is straightforward. Remove the joystick, spring, and gears. Remove the old bowl. Transfer the optical wheels to the new bowl. Reverse the process to install the parts.

That’s it. Overall, I’m happy with these parts sold by Kitsch-Bent. At $1.15 for the bowl, $0.95 for the gearsets, and $1.05 for the thumbsticks, you can repair several joysticks for the same cost as one aftermarket replacement. Most repairs should only need new gears and maybe bowels. The longevity of the components is still unknown. I don’t play my Nintendo 64 daily as I did in 1996-1999, so I don’t expect the joysticks to wear out.

Have fun.
-Tony

Remove SCCM Old Computer Objects Based on SIDs

There are dozens of blog posts and instructions on how to remove computer objects from Configuration if the corresponding AD object no longer exists. I thought I would put my own spin on the idea since I haven’t seen it before. Many of the guides rely on matching the object’s names to each other. The problem you can run into with this method is reusing computer names. You can delete a computer in AD and add a new one with the same computer name. When Configuration Manager runs its next AD sync it will find the new AD computer object and add it to the inventory. Now Configuration Manager has two computer objects with the same name. As an administrator this can get confusing and if you try to clean up Configuration Manager based on name matching the old object won’t get removed.

Rather than match the objects on name you can use something more unique, like the SID. Configuration Manager capture the AD objects SID during the sync so you can use that to match objects and delete those that no longer exist. You can look at the code below or in github.

Find the PowerShell script at https://github.com/agizmo/SCCM_Computer_Removal_SID

$SiteCode = "<YOUR SITE CODE>" # Site code
$ProviderMachineName = "<YOUR CM SERVER>" # SMS Provider machine name

#Customizations
$initParams = @{}

#Import the ConfigurationManager.psd1 module
if((Get-Module ConfigurationManager) -eq $null) {
Import-Module "$($ENV:SMS_ADMIN_UI_PATH)..\ConfigurationManager.psd1" @initParams
}

#Connect to the site's drive if it is not already present
if((Get-PSDrive -Name $SiteCode -PSProvider CMSite -ErrorAction SilentlyContinue) -eq $null) {
New-PSDrive -Name $SiteCode -PSProvider CMSite -Root $ProviderMachineName @initParams
}

#Set the current location to be the site code.
Set-Location "$($SiteCode):\" @initParams

#As far as I can tell, this is the only way to get the SID for a computer object in SCCM. The prebuilt cmdlets will not return SID
$devices = Get-WmiObject -ComputerName $ProviderMachineName -Namespace "ROOT\SMS\Site_$SiteCode" -Class SMS_R_System
foreach ($device in $devices) {
try {
$sid = new-object System.Security.Principal.SecurityIdentifier($device.SID)
} catch {}
$ADcomputer = Get-ADComputer -Filter {SID -eq $sid} if ($ADcomputer) { #nothing } else { Remove-CMResource -ResourceId $device.ResourceId -Force } Remove-Variable sid Remove-Variable ADcomputer
}

Simple as that. Hope you found this article helpful. And play around with PowerShell. There is near infinite capabilities of the language.

Have fun.
-Tony