Did you close CMD window on Server core?

Yes, in some cases this can be a problem. As is true, that if you are connected in remote to a computer, you can just press CTRL + ALT + END and start a new window in Task Manager, this becomes more difficult if you are remote connected in remote session. In This case this shortcut will not work.
Well, the problem is pretty easy to solve:
Run PowerShell as Administrator on some other computer and find the session ID with command:
QUSER /Server:ServerName
You will see all active connections and here you will find also a SessionID for the connection that you want to kill.
Now you know your SessionID and finaly you can kill the connection. This can be done in two ways:
– As command in CMD: logoff Your_SessionID /server:ServerName
– In PowerShell: Invoke-RDUserLogoff -HostServer ServerName -UnifiedSessionId SessionID
Well, now you lose your session and if you will connect to that server, you will have a new session with your CMD window opened.

Windows Server 2019 Activation Error

Activation ErrorIf someone has a problem with activation of Windows server 2019 Standard Evaluation edition, maybe I can help someone with my post.
When I tried to activate the server, I received the error code 0xC004F069. Searching for this code on internet, I received many explanations like problems with KMS server, not accessible thru internet and so one. Of course, no one of this errors was the right error and I had to do my research.
The problem in this case is Evaluation edition and you have to solve this issue as first. To do this you have to change the scope of server using DISM command:
DISM /online /set-edition:serverstandard /productkey: N69G4-B89J2-4G8F4-WWYCC-J464C /accepteula – this key is GVLK Key!
This example is for Standard edition. Be aware that as product key you must use GVLK Keys!
If you need to know to which edition you can change, use the command
Dism /Online /Get-TargetEditions before you specify eddition in previous command
After this (you will see a progress bar with installation) you need to reboot the server. When the server will come back, you can activate it with your key:
Slmgr -ipk:YOUR-KEY
Slmgr -ato
Hope that I helped someone. Let me know.

RDWeb client error: »An unexpected server authentication certificate was received from remote PC«

If you are using HTML5 web site for remote apps and you have to change a certificate, you may expect some problems.
This technology is pretty new and there are not so many posts on internet, so troubleshooting could be difficult. In addition, you have more technologies and this means more problems.
I adopted HTML5 long time ago and everything worked fine for a long time. I have to say, that it was better that I expected. But now I have to change the certificate. Well, this is not a complicated job… or it is? The answer is yes, it is.
I have changed my certificate as usual, form server manager. I tried to connect to website and everything was OK. Then I tried to launch an application and I got this error:

RDP HTML5 Connection error
Wow, what to do now?! I remember that when I setup web client framework, I had to run PowerShell cmdlet to register the certificate. So, if I had changed the certificate, I have to register a new one – rerun PowerShell cmdlet —— .
This apparently didn’t solve my issue because from my computer it seems the situation haven’t change. But then a customer tried to work from a new computer and it worked! Why???
The reason was in cookies and cache files on the computer browser! Yes, you have to delete all cookies and cache files and (at least in my case) the webpage will work again.

RDP HTML5 Firefox setting RDP HTML5 Edge setting

Reset local domain/Administrator password on Server (2016) 2019

In past I already wrote about resetting Administrator password in this post. That was perfect for Windows 10 (till 1903) and Servers 2012 and 2016. Probably Microsoft was not really satisfied that users were able to “recover” lost passwords in such an easy way (this is my opinion). It is OK if these steps are used to reset your lost password, but not if you use them to reset a password from a stolen computer.

I think that this is the reason that you cannot rename cmd.exe in other executables and run it before you log in – for example to change the password. It makes sense, it is perfect for me as it is more secure. But someone forgot something: it is not a requirement to open CMD to use NET USER command, you can do it from PowerShell as well – and it’s working also in Server 2019!

Here are the steps (they are very similar as previous steps):

  1. Boot from DVD – you need to access to Windows system drive offline – installation DVD has all tools that you need.
  2. From menu select Repair your computer. This will give you the ability to change some files.
  3. In the next menu select Troubleshot.
  4. Select Command prompt. This is what we need – we want to modify some files.
  5. Now you need to replace the file:
    1. Go to C: (supposing that C: is your system drive)
    2. Type cd \Windows\System32 – to enter into the folder
    3. Type ren osk.exe osk.old – be smart, you need to preserve the original file and put it back at the end of the process! If you don’t replace it again it means that you leave open a surface attack!!!
    4. Replace the file with a copy C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe osk.exe
  6. Reboot the server in normal mode.
  7. From the logon screen choose Onscreen keyboard (as in picture).
  8. PowerShell window will be opened – and you are a local system user!!! You can do a lot of things.
  9. Change the password with command Net user Administrator Password – where Administrator is the username of local or domain administrator and Password is the password that you want to set.
  10. Login to server with the new password – just to test that it is working.
  11. Reboot the server and redo all the steps from 1 to 5, but in the way to put back all things in the original state. You need to replace original onscreen keyboard:
    1. Go to C:
    2. Type cd \Windows\System32
    3. Type del osk.exe
    4. Replace a file with ren osk.old osk.exe
  12. Reboot the server.

That’s all. I recommend you to disconnect the server from the internet in the time you are doing these steps. In the same way you can access to the PowerShell window, it can be accessed by anyone who can see logon screen!

Unable to live migrate VMs – cause ConfigStoreRootPath parameter

I had a problem, like a lot of other admins, caused by changing volumes in cluster. In my case the origin was a new storage device. After I moved all machines and other content to the new device, all the things were working well. The surprise arrived when I disconnected the old one –the live migrations simply stopped to work. Impossible? Well. Let’s go step by step.
The origin of the problem is the configuration of Veeam backup software as is described in Veeam KB2194: “If you have shared VHDX, you have to define ConfigStoreRootPath parameter…”. After the execution of PowerShell cmdlet, I was very happy – no warning in Veeam, backup was running – all was working perfect. At this point, I just want to remember that we are working with PowerShell on Microsoft cluster and adding Microsoft parameter (asked from Veeam).
Later, when I changed my SAN, both SANs were connected to my cluster. So, I had Volume1, Volume2 and Volume3 from the old SAN device and Volume4, Volume5 and Volume6 from the new SAN device. It couldn’t be different as I need to do storage migration. Let’s say that value of ConfigStoreRootPath is pointing to folder located on Volume1 (or some other volume on old SAN).
When I completed the migration, the last step was to disconnect the old SAN and this step broke the ConfigStoreRootPath configuration. Don’t panic; it is a PowerShell configurable value. Normally you can change it, but not in this case. You will receive an error as Microsoft did not predicted that this can be done. It is not possible to change or delete the value.
I opened a case on Microsoft and explained them what I did and ask them how to solve the problem. The answer was “Well, this is a Veeam parameter. It is actually configurable thru PowerShell and we support this configuration, but we do not support to change this value. Call Veeam.” Of course, I opened another case on Veeam and I had the answer: “Well, it is true that we use this setting, but it is a Microsoft setting and they should resolve this issue. It is not our problem.”
AT this point I was frustrated, but I found a “solution” on Microsoft forums. Microsoft engineer told me that it should work, but the problem is that you have to shutdown the entire cluster and change the configuration manually in Regedit. It didn’t work for me!
My solution: If you are not sure how it was originally configured, you can check it with PowerShell cmdlet: Get-ClusterResource “Virtual Machine Cluster WMI” | Get-ClusterParameter ConfigStoreRootPath

I don’t know if I can call it solution or maybe is better workaround. It. Is very simple to do it. I created a new LUN on storage – just 1GB, it doesn’t need to have a lot of space and present it to the cluster. I created a normal CSV volume as you can see on the picture, but for now don’t use it or put any file on it

When you have your new volume, you can go to the File Explorer on the node which is the owner of this CSV and browse to C:\ClusterStorage. There you can see all the volumes (in my case Volume4, Volum5, Volume6 and Volume7). Now you can just rename Volume7 to Volume1 (same name that you have on the original location).

Last simple action you have to do is to create a folder with the same name as you had on the original volume.

The work is done, now you have exactly the same path as is specified in parameter. Live migrations are working. You don’t need to restart servers or cluster service or something else. You just need that path defined in ConfigStoreRootPath exists. In this path system will create some files and folders, but don’t worry about; you don’t need to copy the old data.

At the end, if you have enough space on CSV and free time, you can move all data from one volume to the other, rename that volume and move data back. You can do this volume by volume for all of them. It will not change the functionality, but in the end it will be nicer – you will have Volume1, Volume2 and Volume3 again.