Hyper-V VM disk types and controllers


 Hyper-V IDE or SCSI? What’s Performing Better, Faster?


If you wonder whether to use IDE or SCSI controllers for your Hyper-V virtual machines, the short answer is: IDE is fine.


There is no need to go for SCSI, it won’t be any faster. Note that you need to have a IDE connected virtual disk in order to boot.


If you want better performance, the virtual machines will run much faster if you:


  1. Use pass through disks instead
  2. Use fixed sized VHDs
  3. Refrain from using snapshots / checkpoints
  4. Refrain from using dynamically expanding disks
  5. Have at least 15% free space inside the VM at all times, and at least 10GB free. It’s an old characteristic of NTFS….
  6. Use paging files on a separate VHD, ideally hosted on a separate drive
  7. Use fixed-sized paging files
  8. Use 4KB NTFS cluster size on the host


In addition, you would want to use the VHDX format instead because it provides faster access to the disk due to its block size on newer hard drives.


From <https://hyper-v-backup.backupchain.com/hyper-v-ide-or-scsi-whats-performing-better-faster/>


Created with OneNote.

Check the SMB version in use for a file share


Check the SMB version in use for a file share

To check which SMB version is being used over a connection between two computers, run the following PowerShell command:




which will show the SMB connections and the dialect that is being used.

PS C:\Windows\system32> Get-SmbConnection


ServerName    ShareName     UserName     Credential   Dialect      NumOpens

----------    ---------     --------     ----------   -------      --------

ser08r2    c$           SAVILLTEC... SAVILLTEC... 2.10         1

serv01      c$           SAVILLTEC... SAVILLTEC... 3.00        1

ser2016  softsh      SAVILLTEC... SAVILLTEC... 3.00         1


To check if encryption is enabled or not over a connection you can use this command:

PS C:\Users\Administrator> Get-SmbConnection | Select-Object -Property *


ContinuouslyAvailable : False

Credential            : domain\administrator

Dialect               : 3.00

Encrypted             : False

NumOpens              : 3

ServerName            : server1

ShareName             : test

UserName              : SERVER1\Administrator

PSComputerName        :

CimClass              : ROOT/Microsoft/Windows/SMB:MSFT_SmbConnection

CimInstanceProperties : {ContinuouslyAvailable, Credential, Dialect, Encrypted...}

CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties


Once you know a connection to a share in SMB3 is encrypted you know all traffic will be encrypted between the two computers over that share.


From <https://www.tgrmn.com/web/kb/item130.htm>


Created with OneNote.

Setup and connect to WinRM to manage remote servers


To enable remote management In Powershell run: winrm qc



Step 1 – Check TrustedHosts

On the server where you want to manage remote machines from (so the client), please run the following command in a privileged PowerShell session:


Get-Item WSMan:\localhost\Client\TrustedHosts | select name,value | format-list


This command show return an empty list, or a list that does not contain the server you want to manage.


Step 2 – Add Server to TrustedHosts

On the server you want to manage remote machines from, please run the following command in a privileged PowerShell session:


Set-Item wsman:\localhost\Client\TrustedHosts "computer_name" -Concatenate -Force


If you run the command at step 1, you should now see a new addition to the list.


Step 3 – Store Remote Server Credentials

Using CMDKEY, on the server where you want to manage remote machines from, perform the following command, for each server you want to remotely manage:


cmdkey /add:computer_name /user:Administrator /pass:Password


The last step, on the managing server, using Server Manager, right click the entry that was throwing errors and click remove. Now try to add the target server one more time, and it should give you a successful result (it should say Online under Manageability)

WinRM Negotiate authentication error:


I received the error message “WinRM Negotiate authentication error” on my home lab, workgroup based systems while testing the Windows 2012 R2 Server Manager connection to remote systems. See below:




Step 2 & 3, make sure you use the full server name including workgroup name. Then you will successfully be able to add the remote server in Server Manager for remote management. Here is an example:


Server Name 
IPv4 Address Online 
Online • Performance counters not started 
• Performance counters not started 
Last Update 
12/4/2014 PM 
12/4/2014 92206 PM 
Windows Activation 
00252-90000-00000-AA632 (Activated) 
00252- IOOOO-OOOOO-AA228 (Activated) 
events | 10 total 
Windows Securi 
Enter User Account and Password 
Enter the name and password of an account with user rights on the 
selected servers. 
For example, user, user@example.contoso.com. or domain\user name. 
Entering a blank user name and password deletes cached credentials. 
Sewer Name 
Seve rity 
Microsoft- Wind Ows -W 
Microsoft- Wind Ows - D 
Remember my credentials 
Microsoft- Wind Ows -W 
Microsoft- Wind Ows - D 
Microsoft- Wind Ows - D 
Microsoft- Windows - MsLbfoSys EvtP ro vider 
Microsoft-Wandows-DNS Client Events 
12/3/2014 PM 
12/3/2014 1000:47 PM 
PS C: set-item testmachine.home 
PS C: get-item wsman: 
WSManConfig: Microsoft. WSMan.Management\wSMan: : localhost\C1ient 
system. string 
SourceOfVa1 u e Val ue 
testmachi ne , testmachi ne. home


From <https://itsystemsadmin.wordpress.com/2014/12/05/winrm-negotiate-authentication-error/>


From <https://virtualization.ro/2019/08/16/windows-server-2016-winrm-negotiate-authentication-error/>



Removing tiered storage spaces - Windows Server 2022

As part of the work I have done in my homelab with tiered storage on Server 2022 storage spaces , here is a script I created that allows you...