Since you just want to migrate the TFS Sever from Domain A to Domain B, copying existing vm may not be the best choice.
You can directly migrate the domain without creating a new VM.
Fist of all, there should has the trust-relationship between your two domains. Then follow below steps:
1.Create all the new accounts on the new domain and DON’T ADD THEM TO TFS
2.Use TFSConfig identities command to change the service IDs (SIDs) for the service account to the new domain.
TFSConfig identities /change /fromdomain:OldComputerorDomainName /todomain:NewDomainName /account:OldTFSServiceAccount /toaccount:NewTFSServiceAccount
Here is a doc about the detailed steps to Move from one environment to another for Azure DevOps on-premises and a tutorial.
It also points out some precautions, you can check it:
- Once a user account is present in Azure DevOps Server, it cannot be removed or have another account mapped to it. For example, if you are moving DomainA/UserA to DomainB/UserB, the Identities command would only work to migrate the user if DomainB/UserB is not already present in Azure DevOps Server.
- Because the members of the local Administrators group are automatically added to Azure DevOps Server, make sure to remove any accounts that you want migrated from that group before you change the domain or environment.
Here is a doc about Trusts and Forests Considerations for Team Foundation Server, it could help you understand the trust-relationship between your two domains.