<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.ledhed.net/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.ledhed.net/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages</id>
		<title>LedHed's Wiki - New pages [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.ledhed.net/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages"/>
		<link rel="alternate" type="text/html" href="https://wiki.ledhed.net/index.php?title=Special:NewPages"/>
		<updated>2026-05-22T16:24:13Z</updated>
		<subtitle>From LedHed's Wiki</subtitle>
		<generator>MediaWiki 1.23.2</generator>

	<entry>
		<id>//wiki.ledhed.net/index.php?title=ADCS_HTTP_CDP</id>
		<title>ADCS HTTP CDP</title>
		<link rel="alternate" type="text/html" href="https://wiki.ledhed.net/index.php?title=ADCS_HTTP_CDP"/>
				<updated>2025-09-25T03:57:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ledhed: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
CRL Distribution Point (CDP) must be published in a certificate to that the client can verify whether a certificate has been revoked. By default Active Directory Certificate Services (ADCS) publishes these in LDAP and adds them to the CDP/AIA settings of the certificate template. This is less than ideal because not all devices on the network have access to query LDAP (at least they shouldn't if you have your LDAP to require authentication). The solution to this is to publish CDP/AIA information on a web/http server that all devices on the network can access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quick -n- Dirty ==&lt;br /&gt;
* Create DNS entries (pki.yourdomain.tld or crl.yourdomain.tld, etc...)&lt;br /&gt;
* Install IIS (not on the server hosting ADCS)&lt;br /&gt;
* Create a directory named (CRL, CDP, PKI, etc...)&lt;br /&gt;
* Share that directory (hide it with a trailing $, PKI$), granting the 'CertPublishers' AD group read/write access (this should grant the ADCS Root CA access to publish the CRL file)&lt;br /&gt;
* Create virtual directory pointing to the directory you just created (PKI)&lt;br /&gt;
* Add the following entries to the Certificate Template's CDP settings under the Extensions tab&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 file:\\pki.yourdomain.tld\CDP$\&amp;lt;CaName&amp;gt;&amp;lt;CRLNameSuffix&amp;gt;.crl&lt;br /&gt;
 http://pki.yourdomain.tld/&amp;lt;CaName&amp;gt;&amp;lt;CRLNameSuffix&amp;gt;.crl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The file:// entry will cause the CA to publish the CRL to this path any time a new CRL is generated&lt;br /&gt;
* The http:// entry will tell the client where to find the CRL via the http protocol&lt;br /&gt;
* Add the following entry to the Certificate Template's AIA settings under the Extensions tab&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 http://pki.yourdomain.tld/&amp;lt;CaName&amp;gt;&amp;lt;CRLNameSuffix&amp;gt;.crl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
https://security.stackexchange.com/questions/206243/how-to-automate-publication-of-crl-and-crt-files-to-cdp-and-aia-location &amp;lt;br&amp;gt;&lt;br /&gt;
https://www.youtube.com/watch?v=U9gDL4GsJxs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
[[Category:Active Directory]]&lt;br /&gt;
[[Category:PKI]]&lt;/div&gt;</summary>
		<author><name>Ledhed</name></author>	</entry>

	<entry>
		<id>//wiki.ledhed.net/index.php?title=MacOS_Create_Bootable_USB</id>
		<title>MacOS Create Bootable USB</title>
		<link rel="alternate" type="text/html" href="https://wiki.ledhed.net/index.php?title=MacOS_Create_Bootable_USB"/>
				<updated>2025-01-07T09:06:16Z</updated>
		
		<summary type="html">&lt;p&gt;Ledhed: Created page with &amp;quot;== Overview == This article will provide steps on how to create a bootable USB stick for bare metal installations of MacOS.   == Download OS == === Browser/App Store === From...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
This article will provide steps on how to create a bootable USB stick for bare metal installations of MacOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download OS ==&lt;br /&gt;
=== Browser/App Store ===&lt;br /&gt;
From a Mac, open Safari and browse to&lt;br /&gt;
 https://support.apple.com/en-us/102662#appstore&lt;br /&gt;
Click the link for the OS version supported by your hardware.&lt;br /&gt;
This will likely open the App Store, click [Get] and you'll be presented with an option to download (or possibly upgrade).&lt;br /&gt;
&lt;br /&gt;
=== Terminal ===&lt;br /&gt;
Open a terminal and navigate to your Downloads folder.&lt;br /&gt;
Show available installers for your hardware:&lt;br /&gt;
 softwareupdate --list-full-installer&lt;br /&gt;
You'll see a list of installers, make note of the version number you'd like to download.&lt;br /&gt;
 Finding available software&lt;br /&gt;
 Software Update found the following full installers:&lt;br /&gt;
 * Title: macOS Monterey, Version: 12.7.4, Size: 12117810KiB, Build: 21H1123&lt;br /&gt;
 * Title: macOS Big Sur, Version: 11.7.10, Size: 12125478KiB, Build: 20G1427&lt;br /&gt;
 * Title: macOS Catalina, Version: 10.15.7, Size: 8055650KiB, Build: 19H15&lt;br /&gt;
&lt;br /&gt;
Grab the version number and run this command:&lt;br /&gt;
 softwareupdate --fetch-full-installer --full-installer-version 12.7.4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create Media ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Command Line Tools ==&lt;br /&gt;
 softwareupdate --list-full-installer&lt;br /&gt;
&lt;br /&gt;
 softwareupdate --fetch-full-installer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
https://geekschalk.com/how-to-download-macos-installers-for-new-old-versions/&lt;br /&gt;
&lt;br /&gt;
https://support.apple.com/en-us/102662&lt;br /&gt;
&lt;br /&gt;
https://support.apple.com/en-us/101578&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:MacOS]]&lt;/div&gt;</summary>
		<author><name>Ledhed</name></author>	</entry>

	<entry>
		<id>//wiki.ledhed.net/index.php?title=Windows_Service_Permissions</id>
		<title>Windows Service Permissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.ledhed.net/index.php?title=Windows_Service_Permissions"/>
				<updated>2024-04-04T07:06:31Z</updated>
		
		<summary type="html">&lt;p&gt;Ledhed: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Sometimes you need to grant a non-administrative user or group access to manage the state of a Windows service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DISCLAIMER ==&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
This article uses some advanced administration steps. Any mistakes could put your service or system in an inoperable state. &amp;lt;br&amp;gt;&lt;br /&gt;
Sanity check the steps below, I tend to paraphrase so use your best judgment. If you're unsure of what this article is doing, DON'T DO IT!&amp;lt;br&amp;gt;&lt;br /&gt;
'' '''I AM NOT RESPONSIBLE FOR ANY DAMAGE YOU MAY CAUSE BY FOLLOWING THIS ARTICLE!''' ''&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Security Templates Snap-In ==&lt;br /&gt;
* Open MMC.exe as administrator&lt;br /&gt;
* Add Snap-In 'Security Templates'&lt;br /&gt;
* Right click -&amp;gt; 'New Template'&lt;br /&gt;
* Expand the tree and click 'System Services'&lt;br /&gt;
&lt;br /&gt;
Find the service(s) you want to modify permissions on edit. Check [X] Define this policy in the template. Then click the 'Edit Security' button. Add permissions to your liking, click ok when finished.&lt;br /&gt;
Right click the Template and click 'Save'&lt;br /&gt;
&lt;br /&gt;
'''''CAUTION: Make sure your permissions at minimum have one account that has 'Full Control', otherwise you'll make it difficult to regain access to the service.'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Security Configuration and Analysis Snap-In ==&lt;br /&gt;
While in the elevated MMC.&lt;br /&gt;
* Add Snap-In 'Security Configuration and Analysis'&lt;br /&gt;
* Right click -&amp;gt; 'Open Database'&lt;br /&gt;
* In the file dialog, navigate to the path you'd like to save your new security database, enter a name in the 'File name:' field and click 'Open'&lt;br /&gt;
* You should be prompted to select a Security Template to associate to the new DB, select the .inf file from the previous step.&lt;br /&gt;
* Right click -&amp;gt; 'Analyze Computer Now...'&lt;br /&gt;
* Expand the tree and click 'System Services', you should see a list of services with a red circle in the icon, this indicates deviations form the security template.&lt;br /&gt;
* Right click -&amp;gt; 'Configure Computer Now...'&lt;br /&gt;
At this point your service permissions should be set. Have the non-admin user test out their new access. If there are any errors, check the Security Configuration logs (probably saved in a log folder in the parent folder of where you saved the Template)&lt;br /&gt;
&lt;br /&gt;
'''''NOTE: When I checked the 'System Services' I got an error saying something to the effect that it couldn't read the template. Fortunately, I did this on a test server so I ignored the error and the service permissions applied just fine. It also pays to have a current backup/snapshot.'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
* I highly advise using a group for permissions, especially in this scenario. It may be that you only need to grant one user access to restart a service, but if you have to add another (say because the previous user got hit by a bus), you just need to add the new user to the group rather than jump through all the MMC/Security Template nonsense all over again. Spend the extra 30 seconds and do your future self a huge favor.&lt;br /&gt;
* Managing permissions on Windows Services are a major pain. I don't know why MS didn't add a security tab to the Services MMC. That said, you should absolutely take a backup/snapshot of the system before making changes to services. If you lock yourself out of a service, reverting a snapshot is way faster than trying to figure out how to re-apply default permissions to a service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
https://www.scriptinghouse.com/2017/04/set-windows-service-permission-to-non-administrator-accounts.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Windows]]&lt;/div&gt;</summary>
		<author><name>Ledhed</name></author>	</entry>

	<entry>
		<id>//wiki.ledhed.net/index.php?title=Kerberos_and_CNAMEs</id>
		<title>Kerberos and CNAMEs</title>
		<link rel="alternate" type="text/html" href="https://wiki.ledhed.net/index.php?title=Kerberos_and_CNAMEs"/>
				<updated>2023-06-30T04:57:58Z</updated>
		
		<summary type="html">&lt;p&gt;Ledhed: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
By default Kerberos authentication will fail when accessing a server using a DNS Alias / CNAME.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
Create an alias for the host in Active Directory using the 'netdom' command:&lt;br /&gt;
 netdom computername &amp;lt;FQDN&amp;gt; /Add:&amp;lt;ALIAS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;br&amp;gt;&lt;br /&gt;
Server's FQDN = FileServer-01.domain.tld &amp;lt;br&amp;gt;&lt;br /&gt;
CNAME/Alias = FS1.domain.tld&amp;lt;br&amp;gt;&lt;br /&gt;
 netdom computername FileServer-01.domain.tld /Add:FS1.domain.tld&lt;br /&gt;
&lt;br /&gt;
The netdom command registers a SPN for the server using the provided alias.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
https://serverfault.com/questions/481289/will-kerberos-work-with-cnames-if-i-have-the-spn-created-for-the-a-record-as-wel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Active Directory]]&lt;/div&gt;</summary>
		<author><name>Ledhed</name></author>	</entry>

	<entry>
		<id>//wiki.ledhed.net/index.php?title=Ubuntu_Resize_Disk</id>
		<title>Ubuntu Resize Disk</title>
		<link rel="alternate" type="text/html" href="https://wiki.ledhed.net/index.php?title=Ubuntu_Resize_Disk"/>
				<updated>2023-02-14T09:11:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ledhed: Created page with &amp;quot;== Overview == Sometimes you have to resize a VMs disk. This is a fairly trivial process, open the VMs settings, increase the disks size. Go to guest and resize the partition...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Sometimes you have to resize a VMs disk. This is a fairly trivial process, open the VMs settings, increase the disks size. Go to guest and resize the partition and filesystem, done!&amp;lt;br&amp;gt;&lt;br /&gt;
What happens if your VM doesn't see the increase in disk size?&lt;br /&gt;
&lt;br /&gt;
== Ubuntu (and probably other flavors of Linux) ==&lt;br /&gt;
As root run the following command to initiate a rescan of the disk.&lt;br /&gt;
 echo 1 &amp;gt;/sys/class/block/sdb/device/rescan&lt;br /&gt;
&lt;br /&gt;
You can verify the size changes by running:&lt;br /&gt;
 fdisk -l /dev/sdb&lt;br /&gt;
&lt;br /&gt;
You can also grow the partition by running:&lt;br /&gt;
 growpart /dev/sdb 1&lt;br /&gt;
This will grow the first partition to fill the disk&lt;br /&gt;
&lt;br /&gt;
You can also resize the filesystem by running:&lt;br /&gt;
 resize2fs /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
https://kerneltalks.com/disk-management/how-to-rescan-disk-in-linux-after-extending-vmware-disk/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Ubuntu]][[category:Linux]][[category:ESXi]]&lt;/div&gt;</summary>
		<author><name>Ledhed</name></author>	</entry>

	<entry>
		<id>//wiki.ledhed.net/index.php?title=Ubuntu_22.04_Autoinstall</id>
		<title>Ubuntu 22.04 Autoinstall</title>
		<link rel="alternate" type="text/html" href="https://wiki.ledhed.net/index.php?title=Ubuntu_22.04_Autoinstall"/>
				<updated>2022-08-24T15:01:53Z</updated>
		
		<summary type="html">&lt;p&gt;Ledhed: Created page with &amp;quot;== Overview == This article will explain how to create a custom USB Boot disk for automatic installation of Ubuntu 22.04 including an answer file.   == Quick-n-Dirty == === In...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
This article will explain how to create a custom USB Boot disk for automatic installation of Ubuntu 22.04 including an answer file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quick-n-Dirty ==&lt;br /&gt;
=== Installation Media ===&lt;br /&gt;
Partition USB stick into 2 pieces&amp;lt;br&amp;gt;&lt;br /&gt;
Partition 1 = 16M, EFI, Format FAT32&amp;lt;br&amp;gt;&lt;br /&gt;
Partition 2 = 4G, MS Dos, Format FAT32&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mount Partition 2''' (make sure to use the right device, you can check with lsblk)&lt;br /&gt;
 mount /dev/sdb2 /mnt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Extract ISO to Partition 2'''&lt;br /&gt;
 7z -y x ubuntu-22.04.1-live-server-amd64.iso -o/mnt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Edit /mnt/boot/grub/grub.cfg'''&lt;br /&gt;
Add these lines after the end of the first 'menuentry'&lt;br /&gt;
 menuentry &amp;quot;Auto Install Ubuntu Server&amp;quot; {&lt;br /&gt;
         set gfxpayload=keep&lt;br /&gt;
         linux   /casper/vmlinuz autoinstall quiet  ---&lt;br /&gt;
         initrd  /casper/initrd&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update /mnt/md5sum.txt'''&lt;br /&gt;
 cd /mnt&lt;br /&gt;
 md5sum ./boot/grub/grub.cfg &amp;gt;&amp;gt; /mnt/md5sum.txt&lt;br /&gt;
Remember to delete the old grub.cfg line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Create an efi directory under /mnt/boot/''':&lt;br /&gt;
 mkdir /mnt/boot/efi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mount Partition 1'''&lt;br /&gt;
 mount /dev/sdb1 /mnt/boot/efi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Install grub on Partition 2''' (this assumes the system is x64 UEFI):&lt;br /&gt;
 grub-install --boot-directory=/mnt/boot /dev/sdb2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Unmount Partition 1, then Partition 2'''&lt;br /&gt;
 umount /mnt/boot/efi&lt;br /&gt;
 umount /mnt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Answer File Media ===&lt;br /&gt;
'''Generate a user-data file''', this is most easily done by copying one from a manual installation. This file can be found at:&lt;br /&gt;
 /var/log/install/autoinstall-user-data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Generate a meta-data file''', this file is typically empty.&lt;br /&gt;
 touch meta-data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Create the answer-file.iso'''&lt;br /&gt;
 cloud-localds ./answer_file.iso user-data meta-data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Burn answer-file.iso to a USB stick.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' Unmount the Answer File USB stick'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Boot it! ===&lt;br /&gt;
Insert the newly created Installation USB stick and invoke your system's boot menu (F11 perhaps).&lt;br /&gt;
* Highlight Partition 2&lt;br /&gt;
* Insert the Answer File Media&lt;br /&gt;
* Press [Enter]&lt;br /&gt;
The system should install unattended including the network settings, user credentials, and packages you selected when generating the user-data file on the manual installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
https://ubuntu.com/server/docs/install/autoinstall&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://github.com/covertsh/ubuntu-autoinstall-generator/blob/main/ubuntu-autoinstall-generator.sh#L249&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://linuxconfig.org/ubuntu-autoinstall-example&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://gist.github.com/jamiekurtz/26c46b3e594f8cdd453a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Ledhed</name></author>	</entry>

	<entry>
		<id>//wiki.ledhed.net/index.php?title=Regex_Examples</id>
		<title>Regex Examples</title>
		<link rel="alternate" type="text/html" href="https://wiki.ledhed.net/index.php?title=Regex_Examples"/>
				<updated>2022-07-14T11:21:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ledhed: Created page with &amp;quot;== Overview == Here are some common examples of Regex used for form validation.  == Phone Numbers ==   == Email Addresses ==   == IP Address Validation == === IPv4 Address ===...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Here are some common examples of Regex used for form validation.&lt;br /&gt;
&lt;br /&gt;
== Phone Numbers ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Email Addresses ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IP Address Validation ==&lt;br /&gt;
=== IPv4 Address ===&lt;br /&gt;
 ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== IPv4 Subnet in CIDR Notation ===&lt;br /&gt;
 ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)($|/([0-9]|[12][0-9]|3[0-2]))$&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
https://www.regextester.com/&lt;br /&gt;
&lt;br /&gt;
https://www.regextutorial.org/regex-for-ip-address-match.php&lt;br /&gt;
&lt;br /&gt;
https://stackoverflow.com/questions/12141206/ipaddress-or-cidr-block-matching-regex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Regular_Expression]]&lt;/div&gt;</summary>
		<author><name>Ledhed</name></author>	</entry>

	</feed>