Hello,
Volume License is the correct solution to this issue, why do you not want to use volume licensing?
If not using Volume licensing you would need to buy 300+ individual license to get the separate product keys that you would need to use. One per machine. Now you would have keep records as to which keys are installed on which machines. Doable but more work than using
If you were replacing Hardware OEMs will generate a custom OEM image and deploy it on the new hardware that would solve the issue, but those would be Full licenses not upgrade licenses.
More information on your scenario would be useful to determine if there any other possible solutions.
Darrell