Friday, May 30, 2025

2025-05-30 - Routing Laptop Audio Through Desktop to AVR with Voicemeeter + Macro Keys

         So, for a few years now I have been in need of an audio solution. I recall that fifteen years ago I used to have all iPhone audio over Bluetooth routed through my Windows desktop computer and into a mixer, then with a media distribution aplifier, multiplied so I could send one signal to a cheap surround sound system and the other half to a couple of PA speakers, which had more bass. They were cheap but they were okay for a while. I never noticed that when I had initially routed the 5.1 audio out the 5.1 3.5mm jacks and one of the headphone 3.5mm jacks in the front to the PA speakers, that they were not synced at all. I just never seemed to have this problem. But more recently, this became a huge problem. But when I tried to set this same system up years later, it became a huge problem and I had to split the 5.1 audio twice and use adapters to turn it back into stereo for the PA speakers. I only had two of them and I wasn't going to buy more of them. This had a lot of problems. The more adapters you introduce, the more potential for failure, there was a point where the audio had humming and hissing and so I had to introduce a ground loop isolator between the computer and the audio equipment. It was a cheap one but it did its job. According to SVS, these are worthless, but I’m not chasing reference-level fidelity — I just need gear that works and delivers the experience I want. 

        And so if I ever wanted 5.1 and bass, I would end up having to buy an AVR, which I wanted to avoid because it would specifically keep me from mixing my laptop audio with my desktop audio and letting me control them separately and together if desired but also have everything come out into one system that controls surround but also bass. The AVR would allow me to do the last part and not really the rest of it. Not without spending a lot more money anyway. If I was reluctantly going to enter into using AVR's, then I wouldn't be spending a fortune on it but enough to get one that basically does the job. I am not going to spend 500 on an AVR. So I bought a Yamaha RX-V385. I was also thinking that while I really enjoy 5.1 surround sound, I also wanted speakers all around me to enable me to be able to hear because I am kind of deaf. If roommates need it quiet, this really puts me at a disadvantage because I can't hear my movies or videos dialogue at all. And then I finally decided that since this Yamaha had a stereo option for all the 5.1 speakers while allowing me to switch back to 5.1, I could just leave it on 5.1 all the time. I bought Klipsch HT-50 5.1 surround speakers, thinking these would have a more crisp sound because although I am not into record player like fidelity, I do like the kind of clean audio that I have heard Bose or Harman Kardin speakers provide. Unfortunately I didn't know what this sound quality was called. I guess it may be called high-end clarity, sparkle, or precision or articulation. 

        Anyway, I ran into a problem. Plugged the AVR and speakers in, went to the stereo feature, plugged in my SVS SB 3000, there was just one huge glaring issue. If I wanted to hear and see what was on my desktop, I had to have my desktop plugged in via HDMI which introduced other problems. I suppose I could have explored component and composite RCA cable bundles but I had heard that these really cut down on quality even if you technically get 1080, oh yeah, and I was using a 4k TV. I didn't care much for expensive high fidelity TVs either but I always heard Samsung was the best so I had a cheap Samsung 4k Smart TV even though I disliked Smart features on most things except phones. And even sometimes that gets in my way. I am a fan of things that just turn on and off and do their job like a toaster or old TVs, and they don't tell you, "Um, you need to buy a far more expensive HDMI cable arbitrarily in order for me to even accept the signal from your device!" Strangely enough it accepted the signal fine with a bent pin and I noticed nothing until the TV finally just said, no, this is no good. And Samsung wanted to charge me a ton of money to have a technician come out and look at it or for me to eat this problem. The latest smart TVs have gotten smarter, which means they are less convenient for me. No I don't need you to do Netflix and scan for viruses and have an internet connection, I need you to literally display 4k output from my computer, let my computer do the rest. Could you imagine if the sub-lightspeed ion engines on the Millennium Falcon were smart devices and dictated that all thrust only comes from them, the lightspeed hyperdrive need not apply? There's almost no reason to have one without the other, so this often being the case for me with my TV, you could imagine my frustration. 

        Thanks to ChatGPT, and my asking what features to turn off or change so the TV stops dictating everything with my AV setup, like randomly turning off once a week, which since my desktop doesn't have constant output regardless of the screen being turned on or unplugged, so the icons and folders scatter and change position and all sorts of things, making these changes ChatGPT suggested really helped even though they didn't totally eliminate all the crap the TV does much to my chagrin. I am seriously going to consider a commercial 4k TV after this even though it would twice as expensive. They last longer, and are the 4k toaster of TVs. 

        So the problem with the AVR, I can either be dedicated to the desktop audio and video in one stream over HDMI, and if I wanted to hear my laptop over this sound system I would have to go into the Option menu on the AVR, which covers half the screen, go into Audio In, and switch to one of the RCA inputs that allows me to connect a 150 dollar Fiio DAC via USB to my laptop. I thought at the time this was the only way. I have since concluded the DAC was unnecessary. I mean, there are scenarios where it is necessary, but in general I have found it not to be when I discovered other methods. Since I am not really into fidelity and more into things just functioning properly, and doing specific things like offering heavy, booming bass, (guys in my high school had subs in their trunks, so I always wanted that too), and my mom and I have always agreed you need a bit extra bass than regular systems offer and apparently I do have audiophiles in the family that precede me. So when this Audio In menu appears and covers half the screen coming from the desktop, it also totally mutes the desktop. I put up with this for a while until the tedium of constantly switching between the two became too much and even caused me to think the system was broken when I would close  the Audio In menu and leave the desktop video exposed without remembering I was connected to laptop audio. 

        I also dealt with another problem. Whenever making this switch between desktop audio and video to laptop audio, I would connect my laptop to a thunderbolt 4 dongle, which had the Fiio DAC and other home accessories connected to it such as ethernet and charging for the laptop, the sudden connection of the DAC usually didn't prompt Windows 11 on my laptop that it was present and ready to take all audio by default. I tried to get this to work and finally created batch and PowerShell scripts to manage switching between the audio outputs on my laptop so it would be less tedious, but these often didn't solve the issue either. I learned that I also had to turn the DAC off and back on again with most sudden connections to the thunderbolt 4 dongle. Then to get bass (all my music is on my laptop so I can sync my iPhone on-the-go and have everything center around my laptop that I bring everywhere with me), I had to go on my phone and turn up the gain on the SVS subwoofer. So there are four steps that each have their own common issues, and are tedious when all together without their problems. 

        I had been googling and asking ChatGPT for years now ways that I can route my audio around the desktop and finally decided three weeks ago that I would bite the bullet and route through the desktop, which does unfortunately mean that the desktop must always be running in order for this to work and when it doesn't, I have to change how things are plugged in. 

        According to SVS, a company that sells sound systems, you want to avoid 3.5mm jacks for audio. I mean, Bluetooth is worse, I suppose, I haven't had the problems with its audio quality that every one else has had, but even SVS offers Bluetooth audio transmitters and receivers, albeit for a lot of money. 

        I had been searching for years now different parts on Amazon that I could use to resolve this routing issue in various ways. So I asked ChatGPT is there a way to route the audio through my desktop and into the AVR without switching inputs on the AVR at all, through the HDMI output on my graphics card, without ever using 3.5mm auxiliary. 

        The reason you want to avoid 3.5mm jacks is that they output a low-voltage, low-current signal meant for headphones—not full-range powered speakers or subwoofers. It lacks the voltage swing and power that RCA line-outs or balanced outputs provide. Many 3.5mm sources (like laptops or phones) use small op-amps that struggle with noise, distortion, and current delivery. They aren’t designed to drive high-quality audio gear properly. 3.5mm outputs are often noisier, pick up interference, and introduce hiss or hum, especially when used in desktop setups with lots of electronics nearby. You're missing the signal integrity of a proper preamp stage. RCA or XLR connections come from line-level outputs, which are designed for consistent volume and low distortion.

        After some back and fourth the conversation with ChatGPT finally settled on a sort of arbitrary method of using my laptop connected to my Fiio DAC through USB which turns the signal from digital to analogue, then from the DAC over RCA to a Behringer UCA222, which reverts the signal back to digital again, then through through USB to the desktop. And to get it to go through my Windows 10 Desktop to my AVR, I had to go Taskbar > right click speaker icon > Sounds > Recording tab > click Microphone USB Audio CODEC > set default device > then go Properties > Listen tab > check the Listen to this device checkbox > and in the dropdown menu for "Playback through this device:", select my SAMSUNG [TV] (2- NVIDIA High Definition Audio) which in the signal chain stops first at the AVR and the AVR strips the audio for itself. I applied this and then went to the Levels tab in Microphone Properties and it was turned down a ways, so I turned it up all the way because I didn't see why it should be so low. 

        I learned this last night when after a week of this new setup with laptop audio going through the desktop and working the way I wanted despite lots of issues, such as like yesterday when after a whole day of using the laptop audio it suddenly decided to stop working completely for no known reason and I absolutely could not get laptop audio through the desktop. The desktop showed via a VU meter in Sounds that it was receiving the audio. And I knew that the AVR was fine because it was still putting out any audio that originated from the desktop. Just nothing from the laptop would come through no matter how many volume and gain knobs I adjusted. 

        The original plan I created included this Behringer device also included the freeware VoiceMeeter, the intermediate Banana version. I had reservations against this software until now because a friend of mine swears by it and I always found it majorly complicated even though I knew it was powerful. Since this set up as it was so far was working great without VoiceMeeter, I decided not to add to the pot. But I asked ChatGPT I should include VoiceMeeter if this setup works without it. I learned the hard way there are complications that will eventually happen when I connect the laptop, the playthrough will require some tooth-pulling with Windows. 

        VoiceMeeter would set it to work the same way every time I connect without a lot of fiddling. I decided to wait and see how much fiddling I would have to do without VoiceMeeter and as it turned out, this first issue was a showstopper. I had initially found that if I turned off the DAC in the signal chain, then my headphones would work directly on my laptop when it was late and roommates were fussy. Turning the DAC back on would initiate the playthrough on the desktop instantly and the power button on the DAC is also a volume knob so this worked great. 

        My only complaint until yesterday was that I had to turn all of the volume knobs really low in order to keep from blasting everything that came from the laptop. I have some audio experience and once had a customer working Walgreens nightshift cashier, who was an audio engineer, who explained that you want all your faders and knobs at around 75% or where they indicate is the optimal range. And I had to turn laptop audio down to 22 out of 100, and the DAC had to be turned down to plus or minus twenty percent, and there came a point where if you needed the volume to be audible but very low, you couldn't do it on the DAC, the audio would just go to moderately low and then mute in a smooth but very unhelpful way. The desktop audio had to be turned down to about 20 percent. So when watching a movie, I would switch to utilizing VLC player volume a lot more, I don't know why I didn't have a problem when watching YouTube. And the AVR was set to -6.0 decibels. 

        I installed VoiceMeeter Banana on the desktop, and had ChatGPT guide me through most of it because I was so confused by it every time I tried it in the past. It just isn't intuitive to me. I installed it. 

        I clicked on Stereo Input 1 at the top left of the window > a new window appeared with a dropdown for the option to select Microphone (USB Audio CODEC) and also to choose between WDM, KS or MME. I left it on WDM at first. I don't think changing it made anything better, but I will get to that. > I set A1 near the top right of the main window to SAMSUNG 2- NVIDIA High Definition Audio.  

        Then I discovered something that would force me to give up a staple of my desktop configuration for many years. I primarily control my desktop through just a wireless keyboard. For mouse operation I use the built in trackpad on the only keyboard I ever saw until recently that did this, the Logitech K400. There are other things like TV remote sized keyboards with all the buttons and a tiny track pad, and you can even point the remote at the screen and it'll move the mouse, I thought that was so cool I had to get my mom to buy it since the keyboard was less convenient for her when I gave her a similar setup. 

        The Logitech keyboard comes with the Setpoint software driver, which controls a bunch of things on the mouse and the keyboard and the trackpad, and pairing one or more devices to a Logitech USB receiver (which confuses me because it used to be called a dongle, which now has a whole other USB dock type meaning). I always controlled my volume through this keyboard for the desktop. And it used a volume level indicator other than the Windows default that I liked more. 

        But there was now a huge problem. To use VoiceMeeter also meant that to change the volume, the keyboard media keys for volume no longer applied. And there is no simple way to get windows to simply recognize those special keys on the keyboard and map them to VoiceMeeter volume. There was another issue too though. In the middle of this problem I realized that I would prefer that the keyboard volume, if I ever got it working again, just effect the desktop volume and allow the laptop volume to continue unimpeded. It looked like this may be too tall an order while still using Setpoint. But I need this to work. So I decided to give it a try and close Setpoint for the first time in over ten years. 

        The first of two things that were really affected by this was that the trackpad speed was much slower, which was sort of causing anxiety because you'd expect it to move and then it would slow down or stop without having moved as much as it used to. It's already a small trackpad by todays standards. So I sped it up in regular mouse settings and this messed with the regular wireless mouse as well, which fortunately had a DPI button, which I adjusted, but that meant that since I use the same mouse for both the laptop and the desktop and I switch between the USB receiver on the desktop and Bluetooth for the laptop, the mouse on the laptop was now much faster. I had to use the DPI button for this too. 

        I almost thought this resolved everything. Then I discovered that the desktop and the laptop require different DPI settings. And the speed was fast enough and not too fast but the sensitivity was so strong on both computers now, that trying to do small things like perfectly grabbing the edge of a window to drag it to a new size and shape was now very hard to do. I have already been struggling with this issue on the desktop because I started using a 4k TV in 2017. I've become far more of a keyboard user as a result. Using the mouse caused too much anxiety. It would nearly push me to panic. Trying to do these overly delicate almost impossible tiny moved with the mouse causes an overwhelming feeling in my stomach. 

        So Murphey's law. The classic upgrade-to-downgrade pipeline. Solving problems one disaster at a time. Apply fix, unleash chaos. If it ain’t broke, wait till I fix it. The circle of bugs continues. Why solve one problem when you can create three?  

        I decided to couch that mouse issue for another time. It isn't as crucial to fix as the other issues. The second issue caused by closing Setpoint was that now there's no volume indicator on the screen when I change volume in VoiceMeeter, other than what VoiceMeeter already gives when you have the window open. But I don't want the window open all the time. I am hoping there's an option to keep it minimized to the System Tray. 

        In trying to fix the new critical issue of the keyboard keys not controlling volume anymore, ChatGPT suggested going into UEFI and making changes there if I was unwilling to give up Setpoint. So I went there to discover that my UEFI has no option to affect keyboard MACRO keys. I asked ChatGPT what my options were if I gave up Setpoint. This is actually a thing that AI is really good for. If you are completely unaware of fixes or solutions your computer can be configured with, just ask. I discovered YT-DLP because of it. Now downloading my favorite podcast every week to play on my iPhone in the Downcast app is possible again. Web-based video download sites are far less necessary. But it has complications of course. The fix AI offered for this option was to try using MACRO Buttons, a program that runs sort of separate from but is tied at the hip to VoiceMeeter. This allows you to set any keyboard key to do a specific task in VoiceMeeter. 

        This is where my usage of ChatGPT runs into trouble. I rely on ChatGPT to help me with context when I have trouble figuring out how to do what Google says. But ChatGPT itself is not optimized for computer troubleshooting. I have found that Grok is far more accurate and aware of all the little things that are crucial to making things work properly. But Grok has a severe limit. ChatGPT will at least lower you down to the free model when you run out of 4.0 questions for the day or for the next several hours. So I turn to ChatGPT save Grok for tougher problems. And I had one such problem today. 

        I couldn't get the key mapping done properly. I went to VoiceMeeter > Menu > "Run MacroButtons on VoiceMeeter Start", this opened a new, tiny window in the upper left most part of my screen that said Mode: PUSH. I discovered by accident that right clicking is what opens the Button Configuration window > instructions I found online were tough to follow and ChatGPT wasn't helping here, saying to press buttons that didn't exist. I didn't understand the code I was supposed to enter, but I first tried "Strip[2].Mute = !Strip[2].Mute" into the "Request for Button ON / Trigger In:" field, I'll just call the request on or off field, there are two respectively. And the instructions I was following online stopped there. I felt like there should be more to do in this window, but I had no clue what I was doing and couldn't figure it out. And when you have a problem that could be anywhere, you try to attack the most likely issues, and for some reason I just didn't think to see what everything in this window did. 

        I kept pressing the mute button on my keyboard and nothing happened. I tried holding Fn (Function) and then mute which is also the F10 key. In the main VoiceMeeter window, there were several button looking things that contain an R inside rounded squares, which would light up every time I held Fn and pressed the mute key. But it didn't do anything. VoiceMeeter knew I was pressing a button but it wasn't mapped to do anything despite this code. 

        After a great deal of troubleshooting, I accidentally found the apparent fix for my setup failing yesterday. I had gone into Sounds on the desktop again > under the Recording tab, selected the Microphone USB Audio CODEC > Properties > Levels tab > turned the microphone gain down and pressed apply and then the laptop audio playthrough on the desktop was working again. This does not explain how I lost it in the first place yesterday but this resolved all of the issues of no audio and then allowed me to turn the gains and volumes up again on all other devices. 

        I didn't understand the code I was entering into the Request field in the Macro Button config window, and wasn't able to wrap my head around it yet when ChatGPT suggested I go back into the Macro button config window and change the code in the request on field to "Strip[2].Mute=Toggle" This also didn't solve the issue. I asked it if I should enter anything into any other field and it told me to enter something into a field that didn't exist and then blamed this on the version of VoiceMeeter. After a great deal further troubleshooting I finally switched to Grok and it told me to name the button, switch Button Type to "2 positions", and until then I had been trying to get F10 to work for the mute button and 11 for volume down and 12 for volume up, but then the FN key needs to be held and I want this to work. 

        I was just about at the point when I was willing to use the FN key when suddenly I looked at a dropdown next to Button Type called Keyboard Shortcut, which had already been getting some of my curiosity, and when I clicked it, a long, long dropdown of every possible keyboard key appeared for selection. I scrolled to see what all there was and I found a section for media keys, and I saw mute, volume down and volume up. I decided to go with Mute instead of F10. 

        Then after some time with Grok, it became clear that STRIP in VoiceMeeter refers to the different inputs. Bus also has a specific meaning. ChatGPT had suggested I use a BUS command but this actually mutes the entire works, the command it gave would mute the BUS (output) that exits VoiceMeeter to the video card HDMI output, leading to the AVR. Everything is being routed through VoiceMeeter now, so this effectively mutes everything and also strips all typical windows shortcut controls to audio such as the keyboard hotkeys which include the media keys (mute, volume etc.). 

        I initially wanted the media keys to affect audio from both the laptop and desktop. But my decision to focus on just the desktops audio caused me to not see that the BUS command was the issue because buses (A1 through A5) are outputs. STRIP is the new necessary command. And I was using bus 0 for this command which affected the HDMI output of the whole machine as far as VoiceMeeter was concerned and I didn't know that yet because the way I learn is sort of like putting the cart before the horse. 

        I can't wrap my head around things if I don't fully understand what they do in practical terms. I suppose that sounds normal until I explain that this requires me to use things before I learn what they are or do or how they work. You can't just say the plus sign adds, there's zero context. If I use a calculator and I see that one number with a plus sign increases the size of another number, I start to see how it works but I still need to learn how it does it and in what way. This only happens if I use it. If I learn it out of that order then I am just memorizing totally abstract information that I have no place holder for. So I use something by following instructions or playing with it, and the understanding comes later, like when you reflect back on things and you see the whole picture afterwards. If it is tech related, I keep this blog and it forces me to go back through everything that I did. And I don't want to go back through this trouble again unnecessarily so always leave myself my own instructions with everything I do in some fashion. 

        Anyway, STRIP 0 has a whole other meaning than BUS 0. I had been messing with Mute for a while, decided to move on with volume down, and it took some messing around but I finally discovered that the command Grok gave for me to enter into the request on field to mute the desktop was "Bus[0].Mute=1;", and then this worked. And after this I slowly started to understand. But I wanted to not mut ethe laptop and instead just the desktop so after some messing around I figured out that desktop audio was coming through the first virtual input in the main VoiceMeeter window and when I pressed mute, the mute button on one of the other strips or buses or whatever had the mute button light up. I asked Grok what the name of the feed was called for virtual inputs and after some time finally discovered that Using Strip[2] targets an input, but you want to control the output (desktop audio to Yamaha AVR). Bus[0] (or the correct bus index) is the right choice for muting and adjusting the gain of the HDMI output. And then learned that STRIP[3] was the first virtual feed code for the command for the macro key. Grok gave me "STRIP[3].MUTE=1" to enter into the "Request for Button ON / Trigger IN:" field and then in the "Request for Button OFF / Trigger OUT:" field enter "STRIP[3].MUTE=0; and then check the Exclusive Key checkbox so this keystroke doesn't do anything else. Unfortunately, opening Setpoint again overrides this checkboxes affect on the system. It worked!

        Then I did the same for the volume buttons. I accidentally expanded the Macro button window to discover that as far as I expand the window, the more large blue buttons appear and each one can have one macro key assigned to it for VoiceMeeter. I clicked a new one, named it, instead of 2 positions in the button type field, I selected Push button, in the request for Button blaw blaw blaw field I entered Strip[3].Gain+2;, and then for volume down the same but entered -2. Mute worked for the correct thing but volume up and down didn't do anything. Then Grok suggested that the code might be wrong. I gave it the code and it said yes, the equals sign is missing. for volume up go "
Strip[3].Gain=+2;" and volume down go "Strip[3].Gain=-2;". They both worked. Now the problem that i may need to change volume quick before roommates complain, how do i get it to lower the volume continuously if I press and hold the volume buttons. Grok had me go to the TRIGGER section at the bottom of the configuration window, with TRIGGER, Strip, In, Out, Hold, and level option. It had me click the checkbox to enable under Trigger, and in the Hold field, enter Repeat, it actually had me enter three words and repeat was one of them but after closing it and reopening the config window it replaced that with 10. Then later I found further instructions I missed which suggests in the Request for Button etc field I could enter the script "while(Trigger) { Strip[3].Gain-=2; sleep(100); }" for volume down for example.

        There are other fixes I could install for getting an on screen volume indicator but that's for another day.

This has been Truncat3d 00000000111100010100110______________end of line

Wednesday, May 21, 2025

2025-05-20 - Active Directory 2.0 - Promoting WinServ2025 to a Domain Controller

        After the Add Roles and Features wizard was completed, the server had installed Active Directory and rebooted, I clicked on the yellow triangle by the flag icon at the top of the Server Manager window, and under that, selected Promote this server to a Domain Controller. This opened another wizard giving the option to add a new Forest. 

        A Forest is the entire AD structure which is a database, which is the top of the hierarchy. One or more Domains are units inside the Forest. After selecting to add a new Forest, I gave the domain a DSRM password which you would only use rarely but if AD breaks you'd need to use. I gave it WinServ2025 to keep things simple since this is only for learning and will not be doing anything sensitive. Although instructions told me I should use 12 characters, upper and lowercase letters and numbers and symbols. I only had letters and numbers, 11 of them, and upper and lowercase letters. I don't know why it worked but it did. In my experience with Windows Server's Server Manager so far, if the field doesn't meet the criteria set, then it doesn't let you proceed, and neither does Proxmox for that matter. So these instructions must be wrong in that regard. 

        I got a message saying "A delegation for this DNS server cannot be created because the authoritative parent zone cannot be found. But I am skipping past this, there's no  parent DNS zone like .local on the internet to delegate from and my Proxmox setup isn't running a higher-level DNS server that could delegate to testlab.local, which is what I named it. It asked me to create a DNS delegation, which I called testlab.local since I'm bad at naming things. The wizard had me confirm the the NETBIOS name, which had TESTLAB in capital letters, which will always use the first part of your domain name. I simply confirmed it. On the Paths page, I left everything default since I had no reason to change it. I then got two warnings, a Static IP Warning saying my network adapter needs static IPv4 and IPv6 addresses. I already had a static v4 address, and fixed the v6 address problem by disabling IPv6. The other problem was a DNS delegation warning. External DNS servers won’t know how to find my testlab.local domain, but I will ignore this for the purposes of my AD project. I pressed Install at the bottom of this page. 

        In trying to understand the DNS delegation problem, I did come up on something I could install that would stop the warning from appearing every time:

Install-ADDSDomainController -NoGlobalCatalog:$false -CreateDnsDelegation:$false -InstallDns:$true -DomainName "testlab.local" -DomainNetbiosName "TESTLAB" -SafeModeAdministratorPassword (ConvertTo-SecureString -AsPlainText "YourPassword" -Force) -Force:$true

        But I'm not doing this because I want everything to happen the same way it would unfiltered in the workplace. I am aware that installing this may very well just stop this one warning and in reality in the workplace if I just got the system running properly and needed to make this domain searchable by external DNS servers, then this warning would not pop up, but I don't know enough about this to say that it's a good idea to stop this warning from appearing. 

        My friend Matt Petersen is helping me with this, and suggested that I learn about the error. And Doug, my former instructor showed me a webpage for learning Active Directory so I have navigated to it to look at it:

https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/understanding-the-active-directory-logical-model#main

        Instructions I am following said to open the CMD in Windows Server and enter:

echo %USERDOMAIN%



        This returned "TESTLAB", which indicates the server successfully recognized the domain I just created. It's an active directory domain and the machine is properly joined to the domain, the promotion worked! I have an Active Directory!

        Initially, I wrote that the promotion to DC (domain controller) worked, I didn't know that officially meant I had an active directory. 404 plan not found!

        This isn't exactly promoting the server, but since I imagine my evaluation period for windows server is going to be up in the next month or two, i looked up how to back up my progress so i can simply transfer it to another VM or whatever. So in the Proxmox interface, I clicked Datacenter in the side-pane > Backup > Add, which produced a window to back it up. Unfortunately the picture I provided was grayed out because I had already done something in the backup window I didn't want to lose and decided to capture this image so I moved it to the side while I grabbed it. 


        In the backup window under Node, selected Poxmox, Storage set as Local, and in schedule, it didn't offer the exact time I would have preferred, instructions online suggested the same scheme used in Cron on Linux, so I typed "0 2 * * *". "where the first star represents the minute (0-59), the second star represents the hour (0-23), the third star represents the day of the month (1-31), the fourth star represents the month (1-12), and the last star represents the day of the week (0-7, Sunday-Saturday)." I was led to understand that everything in Proxmox uses military time, Cron syntax, and the three asterisks means daily. 0 = minute 0, 2 = hour 2 (2 AM), * * * = every day, month, and weekday in another thing. It kept giving me n error 400 no matter what I did. Another thing said you can't just enter 02:00 because it wont work every day. But I found a page online where this guy explained what I was doing and just entered 21:00 for his backup. Then I went back to the field in Proxmox and looked at the dropdown menu options I was dissatisfied with. I selected everyday 21:00, and it simply displayed a straight 21:00, which I changed to 02:00. Since I selected every day, I would assume that this would carry with it some sort of indicator, a series of symbols the asterisks or whatever if it didn't automatically do this every day. No symbols, no syntax of any kind. So I entered 02:00. 

        Now in reality I couldn't get it to work and was trying everything and entered just straight 02:00 and pressed okay and it took it, and then tried a few more things to discover that you can't change it once it's done, which lines up with my experience with hypervisors so far. And since I then learned later that 02:00 apparently stands for 2am every day, I stuck with it thankful I didn't have to go back. I will see later if this is automatically backing up each day. 

        In the next field I went INCLUDE SELECTED VMs and check marked the VM below in the window below. I had several VMs that I developed in order to troubleshoot the BIOS problem that kept me from installing Windows Server, and when I found out about workarounds and SeaBIOS, I created several VMs to test all these, I don't want them backed up though. I just know now to use SeaBIOS because of the TPM 2.0 problem. ZSTD for compression which Proxmox says is fast and good, the other options are good or fast. Without doing research, draw you're own conclusions. 

        The last field is more interesting, Mode, which has the option to do Snapshot, Stop or Suspend. 

        Stop: the VM is shut down completely during the backup, then restarted afterward. This is Safer for good, consistent backups but causes downtime. I like this best for lacking issues and am used to logging in every time anyway. Suspend: The VM is paused (frozen), backup runs, then resumed.
Less downtime than Stop, but can cause issues with some apps. Snapshot: Uses Proxmox snapshots to back up while VM runs. Fast and no downtime if guest agent is installed and supported. Might cause data inconsistency if apps aren’t snapshot-aware. Since I don’t have the guest agent set up, Stop is the safest. 

This has been Truncat3d 00000000111100010100110______________end of line

Saturday, May 3, 2025

2025-05-03 - Setting up my VPN again after a move

        What a nightmare that was. It worked fine with the exact same settings before the move, post move, same internet service provider (ISP), it simply wouldn't work. This time the roommate that has dominion over the router settings is a nice guy that just isn't hardly available ever, except for a brief window at night after he comes home from what I assume is work, having been gone for nearly 12 hours, and after he takes his shower and before he goes to bed. I texted him and he said he'd be home at 11PM and I got there 45 minutes late. He had already taken his shower and I just managed to catch him ten minutes before he was going to bed. 
        When I was looking for a place to move, I was under the gun. I had a place lined up and it fell through two days before I was supposed to move, and I needed a place with a number of particular things according to my needs but the one that pertains to the VPN is that the internet had to be Google Fiber (GF), not because VPNs require GF, but because I know that if it is GF, and not Xfiniti, which I have heard mixed things about but regardless of this, the thing that really matters to me is that the ISP does not use CGNAT. I can't tell where Xfiniti uses CGNAT, but I do know that they do us it. I tried to figure some things out on my moms laptop so she could access my VPN. Now CGNAT doesn't stop you from accessing a VPN based on a connection that doesn't use CGNAT, but the VPN cannot be on an ISPs lines through CGNAT. 
        My understanding about CGNAT is that when I was setting up my VPN with my instructor, Doug, I was also learning about NAT, Network Address Translation. IN a router, this separates public IP addresses from private IP addresses, and consequently, translates between them. So I have a computer o my own network with an IP of 192.168.50.153 for instance, I google something, that query will go to my router or up the chain in my private network to my router which is the gateway to the internet, which is why they call it a Default Gateway address, it is the inner private network address of the router, and will usually be 192.168.0.0 or something like that, depending on circumstances. I have a double NAT because I have a router plugged into another router. All this means is that the first router that belongs to my roommate will give a portion of its subnet over to my router, but it'll be a small portion, in my case the third octet if .50, and I get all 255 of those addresses, but my roommates router will keep the rest of the subnet for itself. Anyway, so the google query will go to the default gateway IP address which is my router, get translated through NAT to the network addressing scheme of the network that router is inside of, so it'll leave the .50 subnet of my network and enter the broader private network, and then it'll go to the default gateway address of his router, go through NAT, the firewall, all of that stuff and get translated into whatever my public IP address that faces the internet, and then it'll traverse the public network from one router to another until it reaches the server that has the desired information, then that information will be used to create a new set of IP packets which will carry all the data back to the place that my query packets said they came from, which is where the new packets will be mailed to. They will make their way back to my roommates router through the public IP address, a temporary port in the firewall opens to let them back in, they will get translated by NAT back into a private IP address that the network my roommates router knows and then send it to my router at .50.0, and then through NAT in my router and the firewall, and get translated back into 50.153 to the device the requested the data. Now if the ISP had a CGNAT, which is a carrier-Grade NAT, what that means is some ISPs will save money purchasing public IP addresses, there are after all only so many public IP addresses, especially IPv4 addresses, which is still being used because IPv6 is harder to use long story short. CGNAT is the ISPs own NAT, where they buy just a few public IPs instead thousands or millions of them like GF, and then they will convert public IPs into their own pool of public IPs through their industrial grade NAT, and if you have Xfiniti, then you will get one of their GCNAT based public IP addresses. This causes a problem for someone like me. If I want to have a VPN, my server cannot be behind a carriers CGNAT. CGNAT, to my understanding, has a firewall attached to it, and only one service can usually be assigned to a port in a firewall. And so if a few thousand of Xfiniti's customers had VPNs, only one of them would be granted the port-forward. If you can only do one and thousands on an ISPs service want to do it, there's a problem.
        Okay but before you call me out, I will admit that yes, you can do a VPN behind an ISPs CGNAT. I don't know how to do it but so far when I was trying to set my moms laptop up so I could access it remotely and it wouldn't let me do an Anydesk remote connection, I found out this was because of the CGNAT. Now I don't know if maybe I just activated a full tunnel on my VPN and then did it that maybe it would work fine, but a whole host of problems could happen that would render the VON ineffective, and that is why I set up Anydesk. So Anydesk needs to function regardless of the VN and it wouldn't. Turned out my mom had a number of problems while on Xfiniti, and a lot of them being because she was sold a whole package for Xfiniti with her apartment lease and so she got phone and cable and all sorts of stuff, and she had a variety of problems that may or may not have had to do with Xfiniti and the way they do things, which is different from ISP to ISP in many cases. So when she switched back to GF, the problem went away. I can't remember how I concluded it, but I somehow deduced or did research or something and found that CGNAT was likely responsible or something. 
        Okay, so the reason why wherever I go, they must have GF, is not necessarily because I can't make this work without GF, but because I know it works with GF. And there are a lot of things I don't want to change. For instance, I know there are other ways to access my internal network and file server and all that other than through a VPN. But the VPN is the way everything is set up, it would require a whole overhaul to do something else, such as the method being used and what can be accessed, I am comfortable with my current set up, I have reasonable expectations for it, and even when I have requirements that go beyond those expectations, I am often pleased with results, and I know what these reasonable expectations and limits are most of the time. I would essentially be throwing away everything I already know and established and have to use new methods with unknown limits and still have my expectations and they may not be reached if I use other methods. I would expect that if you had an organization that was used to using VPNs and they seemed to work great most of the time and then you decided to go with an all new method no one knows how to use, that can't be expected to do everything and even what it can still do may require new methods on top of the new access method just tog et the same results, the company would sort of be in chaos and day to day function would be severely inhibited. I have the advantage of being one person but VPNs are not exactly uncommon, they are used everywhere and have many functions. It would serve me to continue to use it. I have often thought that my VPN may be the thing that gets me hired somewhere because of the amount of crap I have had to go through whenever something went wrong. 
        So I had to set up the port-forwarding on my new roommates router. I went to the router after asking his permission and assuring him this wouldn't affect anyone else, assuming no one else has a VPN at this place of residence, and when I looked on the bottom of the router, there was no admin password credential thing. Ge told me he had not changed the credentials, he barely knew what I was talking about. So when I found nothing on the router, and then went to me browser and typed in the typical IP address for the routers web interface to access settings, I got error web pages. I asked ChatGPT how you access the web interface on a GF router and it said that it most likely uses an app or website attached to the account that pays for the GF service. I asked the roommate if he had an app or a website he has access to for his GF account and he did, he went to it, and it was the web interface I was looking for. 
        Unfortunately I didn't get to write down the steps we did to find the port-forward settings, but the best I can ascertain is once logged in, we saw a screen that looked like this:

        After that I believe we went into the internet or router options, I think we selected something on the next page like Edit Network:


        And then saw a screen that I believe said Advanced Network Settings > ports:
        Once I clicked on Ports, I believe we found a button that said ADD RULE, and then saw what I was looking for:

        Once I found my .50.0 routers MAC address on this page, and confirmed with my roommate that was the same MAC address, I saw a page similar to this:
        


The Device at the top was my routers MAC address, the service I selected was single custom port, because I am only doing 51820 and not a range, I selected TCP & UDP despite ChatGPT insisting WireGuard only uses UDP, so I think I will go in and change it to just UDP since I believe this does open me up to potential hacking. I put 51820 in both the below ports that said external port and again in internal port, and had my roommate save it. He then asked again what this does, because he wanted to be sure this wouldn't affect anyone adversely since he's responsible for it and I explained that I have a file server, I asked if he knew what servers were and he said yes, and I explained that to access my file server remotely, I needed to open a port that would let me send stuff through my VPN, both inwards and outwards, and that is what we just enabled. 
        Now that was the easy part. I told him I had to test the connection to make sure it worked and went straightaway to do so. But then I turned on my half tunnel as usual and it was receiving no packets as usual when there was a problem. I rolled my eyes. What now! After a few minutes, oh, I hadn't changed the settings in WireGuard on any peer (remote) devices such as my phone and laptop and my moms laptop. So I went on my laptop, into the tunnel settings after looking up what my public IP address now was, I entered:

    curl -4 ifconfig.me

        I put that in the endpoint address under peer settings in WireGuard on my laptop and did the same for both the half tunnel and full tunnel, then changed it on my moms laptop remotely through AnyDesk, then on my phone. 
        Then I tested it again and it didn't work. No packets received. I verified that the server was running properly, I went locally and accessed the file server through SMB, and the file server is the same device running the VPN server. I started trying to troubleshoot the issue, and didn't seem to solve it. 
        The next day I continued researching and looking things up, I had verified everything I could think of, the port forward was done under my supervision and I confirmed the MAC address of my router, I then had also asked my roommate to send me a screen shot of the configuration, which as you can see above, he did, and I confirmed the PAC address again, I asked ChatGPT if setting it to both TCP and UDP would cause this problem and ChatGPT thought it might but I said, it worked perfectly like this before I moved, and then it said, well, it most likely won't cause problems  but it is unsecure. I checked the settings on my router, I made sure all my IP addresses were the same, the file server was obviously serving files so anything server related that was no my separate Proxmox server had the proper reserved IP, I can't think what else I had checked, but I had checked everything I could think of. Oh, I also went into the wg0.cong file on the VPN server and checked to see if there were any public IP addresses that needed to be changed, I didn't find any, ChatGPT thought this was strange and then admitted that the way I was using it, having endpoints in the server side was unnecessary, and then I asked Grok 3 and it said yes, that's normal, I then switched to Grok 3 because it troubleshoots better than ChatGPT. I only prefer ChatGPT because despite the 4.0 lite query limits on ChatGPT, it switches automatically to 3.5 and keeps letting me ask questions and I don't see much of a difference in the way I use it. But Grok seems to have a hard limit for several hours that absolutely stops me in my tracks and it doesn't even revert to a lower model so any progress I had made absolutely stops. I can't abide that. And I will not be nickeled and dimed out of my entire paycheck. So despite Grok 3 being the better choice for me, ChatGPT doesn't set the hard limit and so it gets all my use. 
        The next day I had decided that since the last time I had VPN issues, the thing that fixed it was rebooting the router, letting the power drain from the capacitors first, I would do the same on both my router and my roommates router. But I asked him if he could do it at a time that affects everyone the least, and he just didn't even get around to it when I happened to check my VPN randomly and suddenly it worked. He told me he hadn't done anything and I hadn't rebooted my router yet either, so I really don't know how it got foxed. The only thing I can think, which I then asked Grok 3 about, was if it is a thing for routers to only update the port forward settings at the start of a new day or something, it said at first that whatever words I used for this scenario sounded very unusual for networking, but then said that it is common for routers to update all the settings after a few hours. I know I checked right away after setting it up and it didn't work and I can't recall if I checked the next morning. I might have and it still didn't work but I don't remember. So whatever the problem was, it works now. And I had insisted many times to both ChatGPT and Grok that my VPN worked fine before the move, same ISP, right down to the way the port forward was established, it looked the exact same as it did a year and a half ago when Robert my former roommate did it for me back in October or November 2023. So they admitted that then it should be working. I went through everything I had confirmed and everything checked out. Everything! But then t started working fine the next day. 
        There is one caveat, I can no longer just leave half tunnel activated on the laptop. It simply won't work at all if I am at home, on my network, plugged in or on WiFi, and either tunnel is activated. I didn't have this problem before. 

This has been Truncat3d 00000000111100010100110______________end of line

2025-07-10 - BYU Wi‑Fi captive portal troubleshooting

  BYU Wi‑Fi Captive Portal Troubleshooting What happened I had used BYU Wi‑Fi just fine before, but at some point, the captive portal star...