How do I clone an installation of Windows 10 from macOS? I have an external SSD which has a working copy of Windows 10 on it. I would like to transfer this copy of Windows 10 onto a different SSD. However, I do not currently have access to a Windows computer.
How would I clone this installation of Windows onto the new SSD? I already have Paragon NTFS installed, which allows me to write to NTFS drives. What should my next step be?

I could drag and drop everything from the Finder into the new SSD. However, this might not copy over some hidden files and might not be a good option.

I could drag and drop after revealing hidden files, but that might also cause issues (?)

I could use rcopy to make sure everything gets copied over (including hidden files), although I don't see any difference between this and option 2.


Note: This question is not necessarily related to BootCamp—I would like to know the same for M1 Macs as well, which do not have BootCamp.
You can use the dd command to clone the disk as follows:

If the source SDD is larger than the destination SSD, start up your Mac in Windows 10 and shrink the partition on the source disk, as explained in this Microsoft document: Shrink a basic volume, so that its size is smaller than the destination SSD. Then restart your Mac in macOS.

Connect both SSD disks to your Mac
If you get a message similar to this when connecting the destination disk:

select &quot;Ignore&quot;.

Launch Disk Utility (located in the Applications &gt; Utilities folder).

Select the source disk and write down the device name.
In the screenshot below, the device name is disk2:


Select the destination disk and write down the device name:
In the screenshot below, the device name is disk3:


Select the source volume and unmount it.


Select the destination volume and unmount it. (This step will not be necessary if were prompted to select &quot;Ignore&quot; in step 1.)


Launch Terminal (located in the Applications &gt; Utilities folder).

Run:
sudo dd if=/dev/diskX of=/dev/diskY bs=1m
where:
diskX is the device name of the source disk (in the example above, disk2)
diskY is the device name of the destination disk (in the example above, disk3)
sudo is a command that let's you run the dd with administrative privileges.
Type your password if requested.
It is extremely important that you don't mix up the device names of the disks! Otherwise you will overwrite your Windows 10 disk.
This may take a while, so be patient. You can check the progress of dd as explained in this answer: How can I track progress of dd

Test the destination SSD. You may want to extend the volume as explained in this Microsoft document: Extend a basic volume


More information
For more information on dd, see: https://en.wikipedia.org/wiki/Dd_(Unix)
For more information on sudo, see: https://en.wikipedia.org/wiki/Sudo
For a very similar but command line-only method to clone disks in macOS using dd, see: https://pbxbook.com/other/dd_clone.html