If you have the misfortune of having to troubleshoot and repair boot issues on a virtual machine after a physical host crash, these two commands might help you.
First of all, try to get into the advanced settings on boot (it should be the F11 key), or after a while Windows (Server or 10/11) might automatically go into the menu when it cannot boot from disk. Alternatively a Windows ISO image can be used.
Once in the advanced settings, run the good old checkdisk command:
chkdsk /f C:
After completion, restart the VM and check if you are able to boot. If the issue persists, try restoring the registry database (once again through the advanced settings or a Windows ISO). A scheduled task regularly backs up the registry and puts it the folder C:\Windows\System32\config\Regbak.
Restart the VM and check if you are able to boot into Windows. If you still have issues, you should consider restoring from a backup (it sucks but sometimes it is unavoidable).
If you are having performance issues with your brand new File Server running on Windows Server 2019, particularly when working with small files over a network share, these PowerShell commands might save hours of troubleshooting.
A while back Microsoft announced the new and shiny Windows Server 2022 and just a few weeks ago the ISO of the technical preview has been made public. What is new you might ask? Well from the articles I read, Windows Server 2022 is more secure, has a better integration with Windows Admin Center (aka modern MMCs) and has simpler migration steps if you want to move your server to Microsoft Azure. Check the article at the bottom of this page.
There are also some visual changes. Take a look at the start screen:
Microsoft Edge Chromium comes pre-installed on Windows Server 2022:
Icons are modern looking like in the latest versions of Windows 10:
The Settings app looks also slightly different
The old Control Panel is luckily still around:
So while aesthetically you might say very little has changed from Windows Server 2019 or even 2016, I am positive that Microsoft has done a lot of changes under the hood that matter and make your infrastructure more secure than ever. This is the version of Windows Server you want to install by default in 1-2 years time.
Active Directory Certificate Services is the Windows implementation of Public Key Encryption (PKI). ADCS is needed whenever you are hosting a web server that needs to encrypt data over the wire. Instead of buying a public certificate, you implement your own trusted internal Certificate Authority (CA), deploy the Root Certificate to your clients through GPO, and then you can create as many web server certificates as you want.
My deployment consists of two servers with Windows Server 2019. The first server will be the Offline Root Certificate Authority (offline because it will be offline for most of the time) and will not be part of the domain. The second server will be a domain member and will be the Issuing CA.
So on the first server, install the ADCS role on the Workgroup server in Server Manager:
Under Role Services, select Certification Authority.
After the role installation, proceed with the configuration.
This server will be the Standalone Root CA, the domain member will be an Enterprise Subordinate CA.
Create a new private key. SHA256 should be just fine for the hash algorithm with a key length of 2048.
Give the CA a name.
The offline Root CA should be valid for 10 years. The online CA for 5.
Here a recap of the settings we chose.
Before configuring the second server, let’s change the Authority Information Access (AIA) and the CRL Distribution Point (CDP). These must be reachable by clients at any time. Open the properties and head to extensions. Remove all the distribution points on the CDP and create these ones (I am not sure if IDP is needed, please let me know):
Change the validity period of the Subordinate CA certificate we are just going to issue and the CDP (5 years for the Subordinate CA and one year for the CDP):
Now let’s install and configure the second online CA server. The feature installation wizard is the same as on the first server. The configuration is slightly different.
Like previously mentioned, we are using an Enterprise Subordinate CA.
We are creating a new key. The hash algorithm is also SHA256 with a key size of 2048.
The certificate request will be uploaded to first server and digitally signed by the offline Root CA.
Here is once again the summary of all configured settings.
Now upload the certificate request file to the first CA. Open the Certification Authority MMC on the first server and submit a new request.
Under Pending Request you should see your request (it might take a few seconds). Here you can issue the certificate.
Save the signed certificate to a file as a DER format. Also, copy the Root certificate to the second server and install it in the local certificate store.
On the online CA, start the ADCS service and install the signed certificate from the offline CA.
Select the previously saved file.
You will probably get an error when attempting to start the service because the CDP is not reachable (http://www.ajni.it/pki/…). With pkiview.msc, you can check if the distribution point are reachable and up-to-date:
Now you will need a webserver where these files are going to be hosted. I will install IIS on the same server, but it is highly recommended to host it on a separate server.
Change IIS configuration to respond to requests with the DNS name www.ajni.it:
Create a DNS entry pointing to the server:
Create the CRL file on the offline Root CA and copy them to the IIS root folder (in my case it’s C:\inetpub\wwwroot\pki):
The file will be created under C:\cert. We’ll also need the Root CA file. The file name needs to be Ajni-Root-CA.crt though.
Here the file inside the IIS folder:
On pkiview.msc, everything should be green on the Ajni-Root-CA. When dealing with Delta CRL, IIS might block downloads because of double escaping. To solve that allow double escaping on IIS under Request Filtering:
Now that the CDP is reachable, the Subordinate CA can be started without any issues. Like on the Root CA, we have to change CDP and AIA locations:
With the above configuration, CRL and delta CRL will be automatically published to the IIS root folder.
Publish the first CRL manually (you need to revoke one certificate, otherwise, the list will not be created. Do that through certlm.msc). Afterward, everything should be green in pkiview.msc.
Publish both CRL and Delta CRL.
The files should be created inside C:\inetpub\wwwroot\pki. The Subordinate CA certificate has to be copied manually and named properly. You can ignore the fact that I have 2 Subordinate CA certificates. You should only see one.
Pkiview.msc is also happy:
After everything is set, you can shut down the offline CA. You only have to start it once a year when publishing the CRL.
At last, publish the Root certificate in Active Directory with certutil. This can be also achieved with GPO.
Linked Clones use a read-only disk as a reference, changes made to the VM are written into a separate writable disk. This technique allows us to save disk space and create a lot of VMs. Changes, at least in the beginning after the OS installation, are very small.
Install Windows 10 or Windows Server along with VMware Tools and then Sysprep your VM.
Now the template can be “cloned”
In VMware, a Differencing Disk is called Linked Clone. Just like in a snapshot, a linked clone uses a base read-only disk and saves changes into second, writable disk.
Now a name for the new VM can be inserted.
After booting up the new VM, we can see that the writable disk only consumes 7MB. 4GB are used for the memory state.
This feature is awesome for home labs. You can create multiple VMs off of that single base disk. In a lab, changes are usually very small, so you can save a ton of space using this method. I would not recommend updating your system through Windows Updates or enabling Bitlocker.
If for some reason the base disk is corrupt or lost though, every VM will be affected.