What happens initially is when you reset the Micro it’s bootloader USB driver is running and Windows enumerates the USB port as COMxx. But then after a timeout period the bootloader exits and runs the sketch code. As part of the sketch code there is a USB driver code running and Window enumerates the USB port as a different COMyy.
What happens too often and usually not on purpose is that someone did not properly select "Arduino Micro" under the Tools->Boards menu when they were trying to upload a new sketch to the Micro. So the wrong core code in the sketch got uploaded to the Micro, without the proper USB driver code as part of the sketch.
So what is happening when you reset the Micro the bootloader USB driver is running and shows up in Windows for a short time until it times out and then proceeds to execute the wrong sketch code without the proper USB core code. This will then show up in Windows as Unknown device.
The trick to fixing this is first restart (important step) your Arduino IDE software and make sure you select “Arduino Micro” under Tools->Boards. Make sure you select a basic sketch like Blink. The board may disappear from the Serial Port list but don’t worry. Then try to upload the sketch. During the build process (right after the compile process) you need to hit the reset button on the Micro again that should get the bootloader running just in time for the upload to proceed and hopefully restore the proper sketch code with the correct USB driver in it. You may need to retry this several times until you get the timing right.