1768년(영조 44) 황해도수군절도사, 다음 해 경상좌도병마절도사를 거쳐 1772년 황해도병마절도사·승지 등을 역임하였다.
1775년 경기도수군절도사로 재임시 백성을 수탈하였다고 조정으로부터 규탄을 받았으며, 이듬해 교동부사(喬洞府使) 재임시에는 감금 중인 죄수를 놓친 죄로 남양부(南陽府)에 유배되었다가 1년 만에 풀려났다.
1793년(정조 17) 금군별장(禁軍別將), 다음 해 수군통제사를 거쳐, 총융사로 재직할 때 경연석에서의 품행실수로 삭직되었다. 곧 복직되어 1795년 금위대장으로 재직 중 어가(御駕) 운행상의 과오로 또다시 삭직되었다가 뒤에 복직되어 1798년 한성좌윤이 되었다.
1800년 장용대장(壯勇大將)·좌포도대장을 거쳐 1804년(순조 4) 우포도대장을 역임하였다. 그 뒤 1807년 좌포도대장을 거쳐, 호군(護軍)으로 재임할 때 성곽·도로의 개축과 군정(軍政)의 개혁을 상소하였다. 1809년에 한성부판윤을 거쳐 다음 해에 형조판서를 지냈으며, 1812년에 대호군(大護軍)으로 죽었다. 시호는 효의(孝毅)이다.