Software Uncategorized

WHMCS remove NS1 and NS2 prefix

This one was bothering me for some reason. When you select the product type in your WHMCS Products/Services as Server/VPS it adds this NS1 and NS2 requirement. Which are just nameservers, it makes no sense! So if you change it from Server/VPS to OTHER the option goes away. If you have modules and other configurable options enabled, they’re all still there and work. Seems silly, but I reached out to WHMCS to ask why it exists in the first place.

Do know, this removes the hostname as well. If you want to keep hostname, you have the ability to hide NS1 and NS2 prefix’s and prepulate them instead. You would leave your Product/Service as Server/VPS and then make these changes:

The fields can be hidden by editing the /templates/orderforms/your_active_template/configureproduct.tpl file.

To remove one or more of the default fields on your order form entirely, you can change the field type to hidden and supply a unique value.

For example:


<label for="inputNs1prefix">{$LANG.serverns1prefix}</label>
<input type="text" name="ns1prefix" class="form-control" id="inputNs1prefix" value="{$server.ns1prefix}" placeholder="ns1">

<label for="inputNs2prefix">{$LANG.serverns2prefix}</label>
<input type="text" name="ns2prefix" class="form-control" id="inputNs2prefix" value="{$server.ns2prefix}" placeholder="ns2">

Replace with:

<!-- <label for="inputNs1prefix">{$LANG.serverns1prefix}</label> -->
<input type="hidden" name="ns1prefix" class="form-control" id="inputNs1prefix" value="host{$}" placeholder="ns1">

<!-- <label for="inputNs2prefix">{$LANG.serverns2prefix}</label> -->
<input type="hidden" name="ns2prefix" class="form-control" id="inputNs2prefix" value="host{$}" placeholder="ns2">

It is recommended to create your own custom order form to preserve changes through any upgrades –

Hopefully this helps someone, enjoy!

Android Android Google

Disable profanity filter in Android 10

This is such a silly thing to have to disable, but any time I was using voice to text, it would always put asterisks for swear words. This is on my Google Pixel 3 XL running Android 10 latest update of Feb 2020. The fix was to disable it in THREE spots, not just one, not just two, but all three. The three spots are: Gboard, Google voice typing, and in the text correction section.

Section #1 Google Voice Typing:

Settings > System > Languages & input > Virtual keyboard > Google voice typing and make sure that Hide offensive words is disabled.

Section #2: Gboard

Settings > System > Languages & input > Virtual keyboard > Board -> Voice Typing -> Offline speech recognition and make sure that Hide offensive words is disabled.

Section #3: Text Correction

Settings > System > Languages & input > Virtual keyboard > Board -> Text Correction and make sure that Block offensive words is disabled.

Section #4: UPDATED (Added April 21 2020)

If those three options do NOT resolve it, the 4th option you can use is to disable offline voice: Settings > System > Languages & input > Virtual keyboard > Gboard > Voice Typing > and disable “faster voice typing“.

Operating Systems Windows 10

Quick and dirty robocopy script to back up directory

I used to have an xcopy script that ran this, but now I have upgraded to using robocopy to mirror my files to a network share that I disconnect and put in cold storage when not actually backing up.

robocopy E:\ \\\backup\ /E /XD “System Volume Information” “$RECYCLE.BIN” “found.00*” /MIR

Break down of the script: E: is the SOURCE of my files and \\\backup\ is my DESTINATION to copy TO. If you not the XD trigger, that EXCLUDES certain files. I want to ignore certain system files that do not matter to my back ups. You can do this for nearly any directory. /MIR is what actually MIRRORS the files, so they will look exactly like what you have on your SOURCE directory structure.

The only downside is there is no versioning with this, what you see is what you get, so if you were struck with some randomsware, this won’t save you. You would want something like seafile, or some other back up service. If there’s any interest, I can make a post on how to create a seafile server to do your back ups and version control. It has the added benefit of having versioning, browser accessible, and phone applications.

Server 2019

Windows Server 2019 Eval to Server Standard

I had issues converting an Eval server 2019 to a Standard Server 2019, and for whatever reason, it was painful to find the solution. Someone on reddit actually posted about it, so here is me documenting it for posterity!

# ISO Used: 17763.253.190108-0006.rs5_release_svc_refresh_SERVER_EVAL_x64FRE_en-us.iso

# Commands Executed:

DISM /online /Get-CurrentEdition
DISM /online /Get-TargetEditions
DISM /online /Set-Edition:ServerStandard /ProductKey:N69G4-B89J2-4G8F4-WWYCC-J464C /AcceptEULA

slmgr.vbs /upk
slmgr.vbs /ipk <MAK_KEY_HERE>
slmgr.vbs /ato

# Initial Product Key is GVLK (unable to find official source at present)

Unofficial GVLK Source

Windows Server 2019 DatacenterWMDGN-G9PQG-XVVXX-R3X43-63DFG
Windows Server 2019 StandardN69G4-B89J2-4G8F4-WWYCC-J464C
Windows Server 2019 EssentialsWVDHN-86M7X-466P6-VHXV7-YY726
Windows Server 2019 Azure CoreFDNH6-VW9RW-BXPJ7-4XTYG-239TB
Windows Server 2019 Datacenter Semi-Annual Channel (v.1809)6NMRW-2C8FM-D24W7-TQWMY-CWH2D
Windows Server 2019 Standard Semi-Annual Channel (v.1809)N2KJX-J94YW-TQVFB-DG9YT-724CC
Windows Server 2019 ARM64GRFBW-QNDC4-6QBHG-CCK3B-2PR88

Easiest way to install ESXi offline without any issues

I kept getting disk full issues when upgrading esx, this is such a silly error, and I really had no way around it outside of loading esx from a full iso and ilo in to boot. But I found a somewhat easier way to do it now via SSH and the upgrade update file.

  1. download the zip file from:
  2. upload it to a datastore
  3. Renamed it to – not required, but makes it easier
  4. esxcli software vib update -d /vmfs/volumes//
  5. reboot
  6. If complete, go ahead and delete the file if you want to reclaim the space.
Dell linux

ssh to reset dell idrac ip address and other variables

I was working on something with an IP conflict, and then locked myself out of routing via the VPN, so the quickest way to do a fix, was to change the IP of my idrac via command line. Apparently, you can do almost everything through command line.

First step is to get onto your idrac, replacing root and IP with your own information. Note, default username and password is root – calvin. If you have a newer idrac, I think starting around idrac8, there is a tab on the server that has the default idrac username and password:

  • ssh root@
  • racadm
  • racadm getniccfg

You should now have a print out of your current configuration for your NIC. To change it, you just do the following:

  • racadm config -g cfgLanNetworking -o cfgNicIpAddress
  • racadm set iDRAC.IPv4.Address

Give it a few seconds, and it should kick you out, and now have the new IP address.

If you want a full subset of the documentation go here:

Otherwise here is a snippet:

% Get all iDRAC settings in a file

racadm get -f config.txt

If you like you can change the contents of config.txt and apply it back to iDRAC
racadm set -f config.txt

% Set password for root user
racadm set iDRAC.Users.2.Password PASSWORD"

% List all ssh keys for root user
racadm sshpkauth -i 2 -v -k all

% Add ssh key to root user
racadm sshpkauth -i 2 -k 1 "CONTENTS OF PUBLIC KEY"

% Delete ssh key for root user
racadm sshpkauth -i 2 -d -k 1

% Get iDRAC IP config

racadm getniccfg
racadm get iDRAC.NIC

% set iDRAC IP

Using config command:
racadm config -g cfgLanNetworking -o cfgNicEnable 1
racadm config -g cfgLanNetworking -o cfgNicIpAddress x.x.x.x
racadm config -g cfgLanNetworking -o cfgNicNetmask
racadm config -g cfgLanNetworking -o cfgNicGateway x.x.x.x
racadm config -g cfgLanNetworking -o cfgNicUseDHCP 0
racadm config -g cfgLanNetworking -o cfgDNSServersFromDHCP 0
racadm config -g cfgLanNetworking -o cfgDNSServer1 y.y.y.y
racadm config -g cfgLanNetworking -o cfgDNSServer2 y.y.y.y
• Using set command:
racadm set iDRAC.Nic.Enable 1
racadm set iDRAC.IPv4.Address x.x.x.x
racadm set iDRAC.IPv4.Netmask
racadm set iDRAC.IPv4.Gateway x.x.x.x
racadm set iDRAC.IPv4.DHCPEnable 0
racadm set iDRAC.IPv4.DNSFromDHCP 0
racadm set iDRAC.IPv4.DNS1 y.y.y.y
racadm set iDRAC.IPv4.DNS2 y.y.y.y

% Set iDRAC DNS Name
racadm set iDRAC.NIC.DNSRacName iDRACNAME

% Set iDRAC domain name
racadm set iDRAC.NIC.DNSDomainName DOMAIN.NAME

% Set iDRAC DNS Server

racadm config -g cfgLanNetworking -o cfgDNSServer1 x.x.x.x
racadm config -g cfgLanNetworking -o cfgDNSServer2 y.y.y.y

% Set Front LCD to hostname
racadm set System.LCD.Configuration 16

% Reset iDRAC to factory defaults
racadm racresetcfg

% Reset/Reboot iDRAC

racadm racreset OPTIONS

Options : soft, hard, cold
racadm serveraction powercycle

% Get Serial number (service tag)
racadm getsvctag

% Get current system information
racadm getsysinfo

% Configure one-time-boot to PXE

racadm set BIOS.OneTimeBoot.OneTimeBootMode OneTimeBootSeq
racadm set BIOS.OneTimeBoot.OneTimeBootSeqDev NIC.Integrated.1-1-1

% Configure persistent Boot Device

racadm config -g cfgServerInfo -o cfgServerBootOnce 0
racadm config -g cfgServerInfo -i cfgServerFirstBootDevice HDD

% Check boot order list
racadm get BIOS.BiosBootSettings.bootseq

% Disable HyperThreading
racadm set BIOS.ProcSettings.LogicalProc Disabled

% Disable OS to iDRAC pass-thru for iDRAC service module (automatically create a pseudo NIC in OS)
racadm set iDRAC.OS-BMC.AdminState Disabled

% Change SNMP public community string
racadm set iDRAC.SNMP.AgentCommunity NEW STRING

% Disable ASR
racadm config -g cfgRacTuning -o cfgRacTuneAsrEnable 0

% Configure Serial redirection

racadm config -g cfgSerial -o cfgSerialConsoleEnable 1
racadm config -g cfgSerial -o cfgSerialBaudRate 115200
racadm config -g cfgSerial -o cfgSerialCom2RedirEnable 1
racadm config -g cfgSerial -o cfgSerialTelnetEnable 0
racadm config -g cfgSerial -o cfgSerialSshEnable 1

to access console via ssh console com2

% Disable Serial On Lan
racadm config -g cfgImpiSol -o cfgIpmiSolEnable 0

% Change Power Profile
racadm set BIOS.SysProfileSettings PerfPerWattOptimizedOs

% Set AC Power Recovery

racadm set BIOS.SysSecurity.AcPwdRcvry Last
racadm set BIOS.SysSecurity.AcPwdRcvryDelay Immediate

% Get RAID physical Disk information

racadm raid get pdisks
racadm raid get pdisks -o (all information)
racadm raid get pdisks -o -p state,size (specific information)

% Get RAID Virtual Disk Information
Racadm raid get vdisks

Computer Hardware Windows 10

microsoft surface pro 6 battery bar stuck at 100%

You would think this is a good thing, but no, haha. It’s nice to know what your battery is actually at. While the tablet was logged in, I did this key combo, and that resolved it:

hold volume + and power button for 15 seconds and that should fix it.


Using plex locally while on openVPN

Do you have a windows server running openvpn, and your plex server at home? If you ever wanted the ability to have plex work local, vice over the internet and back in while you are at home, it’s pretty simple. This will work on any client side openvpn config file. You just need to add this one route in the config file:


replace with whatever your router IP address is, boom, problem solved. There used to be a few other domains you have to route, and some IP addresses you had to keep track of, but now plex made it easy, just works. I had the issue where anytime I had openvpn running and connected on this server, my tablet connected on the same subnet would try to route traffic for my plex application over the internet. When I went to play a video it would say “you are not direct connected, do you want to play this file still”? This resolved it, and running a tcpdump on my firewall, I see the traffic is not leaving, huzzah!

CentOS 7 Operating Systems

How to enable ip forwarding on CentOS 7

I wanted to enable IP masquerading/forwarding on CentOS 7.5, but for some reason, the typical method was not working. My clients could connect, but no traffic was passing beyond the VPS, and on to the internet. I was pretty sure it was my firewall masquerade rule was acting up, but no. It ended up being the kernel routing that you typically set in /etc/sysctl.conf as

net.ipv4.ip_forward = 1 I also tried net.ipv4.conf.default.forwarding = 1

I ended up needing to use the new method, which was actually in the top comment section of the sysctl.conf file. Which refernces using /usr/lib/sysctl.d/50-default.conf
add this line to the bottom of that file: net.ipv4.ip_forward = 1

Reboot, problem solved, started routing traffic outside of the VM.

Computer Hardware HP VMWare ESXi

HP GEN8 Microserver Raid 5 transform times with 4x8TB WD RED’s

I opted to drop a 4th 8TB WD RED in my raid 5 array on my HP Microserver Gen8. It has a P222 raid card in it running the latest, as of today firmware: 8.32. I had the server running for about 2 years in it’s current configuration, with no issues, but I wanted a little more disk. If I had more slots, I would have opted for a raid 10, but I wanted smaller footprint, so this is what I am working with.

So far the transform has been about 36 hours, and running:

/opt/smartstorageadmin/ssacli/bin/ssacli ctrl slot=1 ld 1 show

in ESX 6.7, I am at 40%, oooofta. I imagine rebuilds with these large disks would be just as painful. Good news though, Unrecoverable Media Errors is 0.


Also make backups before you toy around with your raid, I have backups if this goes south, but always have backups.