Hann von Weyhern trat Mitte Dezember 1812 in die Sächsische Armee ein und nahm während der Befreiungskriege auf französischer Seite an der Schlacht bei Leipzig sowie den Gefechten bei Pont à Bouvines und Courtray teil. Am 8. März 1815 trat er in Preußische Armee über, wurde im 1. Obersächsischen Landwehr-Infanterie-Regiment angestellt und avancierte Anfang September 1815 zum Sekondeleutnant. Mitte März des Folgejahres dem 26. Infanterie-Regiment aggregiert, wurde Hann von Weyhern am 10. April 1816 in das I. Bataillon im 3. Garde-Landwehr-Regiments versetzt. Als Premierleutnant war er 1818/19 zum Topographischen Büro und 1824/26 mit der Führung einer Kompanie beim Lehr-Garde-Landwehr-Bataillon kommandiert. Am 30. März 1826 erfolgte unter Beförderung zum Kapitän seine Ernennung zum Kompaniechef im 22. Infanterie-Regiment in Neisse. Mitte Dezember 1837 stieg er zum Major auf und wurde Kommandeur des I. Bataillons. In gleicher Eigenschaft war er ab Ende März 1846 beim III. Bataillon im 23. Landwehr-Regiment tätig und avancierte am 27. März 1847 zum Oberstleutnant. Am 3. August 1848 wurde Hann von Weyhern zum Kommandeur des 18. Infanterie-Regiments in Danzig ernannt und am 19. November 1849 zum Oberst befördert. Daran schloss sich ab dem 22. März 1853 eine Verwendung als Kommandeur der 11. Infanterie-Brigade in Berlin an. Einen Monat später stellte man ihn à la suite seines bisherigen Regiment und beförderte Hann von Weyhern am 13. Juli 1854 zum Generalmajor. Als Direktor des Allgemeinen Kriegsdepartements kam er dann am 2. April 1857 in das Kriegsministerium. In dieser Stellung erhielt er im Oktober den Sankt-Stanislaus-Orden I. Klasse und wurde am 22. Mai 1858 Generalleutnant. Unter Verleihung des Sterns zum Roten Adlerorden II. Klasse mit Eichenlaub wurde Hann von Weyhern am 6. Januar 1859 mit der gesetzlichen Pension zur Disposition gestellt.