Jego publikacje ukazały się m.in. w „Acta Poloniae Historica”, „Kwartalniku Historycznym”, „Biuletynie IPN”, „Przeglądzie Katolickim”, „Ładzie”, „Gazecie Niedzielnej” w Londynie, „Gazecie Polskiej”, „Arcanach”, „W Sieci”, „Gazecie Polskiej Codziennie” i „Więzi”. W okresie 1995–1998 był redaktorem naczelnym pisma kombatantów NSZ „Szaniec Chrobrego”. W 2012 został redaktorem naczelnym miesięcznika „Na Poważnie”, a w 2013 objął stanowisko redaktora naczelnego miesięcznika „W Sieci Historii”, który powstał w wyniku przekształcenia tego pisma.
Działalność polityczna i społeczna
W latach 80. współpracował z opozycją demokratyczną. 10 listopada 1982 został zatrzymany przez funkcjonariuszy Milicji Obywatelskiej podczas nielegalnej demonstracji patriotycznej pod zarzutem brania udziału w zbiegowisku i stawiania czynnego oporu, a następnie aresztowany na okres miesiąca. W 1989 był jednym ze współtwórców Katolickiego Stowarzyszenia Wychowawców, był również długoletnim prezesem oddziału warszawskiego KSW. W 1989 został członkiem NSZZ „Solidarność”. W latach 90. został filistrem Korporacji Akademickiej Arkonia. W wyborach parlamentarnych w 1993 bezskutecznie ubiegał się o mandat poselski z warszawskiej listy komitetu wyborczego Porozumienie Centrum-Zjednoczenie Polskie (jako protegowany Wojciecha Ziembińskiego). W 1998 wstąpił do Towarzystwa Miłośników Historii, a także został członkiem komitetu redakcyjnego „Biblioteki im. św. Jadwigi Królowej”, powołanej przez Towarzystwo im. Stanisława ze Skarbimierza. W 1999 objął funkcję sekretarza Komitetu dla Upamiętnienia Polaków Ratujących Żydów, a w 2004 został przewodniczącym Komisji Historycznej tego komitetu. W latach 2000–2003 był członkiem rady programowej Fundacji Dzieło Nowego Tysiąclecia. W 2007 wszedł w skład rady fundatorów Fundacji „Żołnierzy Wyklętych”. Zasiadł również w radzie historycznej Związku Żołnierzy Narodowych Sił Zbrojnych. W 2010 został przewodniczącym kapituły Nagrody im. Jacka Maziarskiego. W 2011 objął funkcję prezesa Stowarzyszenia Polska Jest Najważniejsza, powołanego przez członków warszawskiego komitetu poparcia Jarosława Kaczyńskiego w wyborach prezydenckich w 2010. Został również koordynatorem mazowieckich struktur Ruchu Społecznego im. Prezydenta Lecha Kaczyńskiego. W wyborach parlamentarnych w 2011 bez powodzenia startował do Senatu z ramienia Prawa i Sprawiedliwości w okręgu nr 85. W 2012 objął funkcję przewodniczącego Społecznego Komitetu Obchodów Narodowego Dnia Pamięci „Żołnierzy Wyklętych”. W 2015 ponownie wystartował do Senatu z ramienia PiS (tym razem w okręgu nr 40), uzyskując mandat senatora IX kadencji.
Odznaczenia i wyróżnienia
W 2005 otrzymał Srebrny Medal „Zasłużony Kulturze Gloria Artis”. W 2009, za wybitne zasługi w dokumentowaniu i upamiętnianiu prawdy o najnowszej historii Polski, został odznaczony przez prezydenta Lecha Kaczyńskiego Krzyżem Komandorskim Orderu Odrodzenia Polski. W 2010 Klub Jagielloński im. Św. Kazimierza przyznał mu wyróżnienie dla historyków zajmujących się dziejami najnowszymi w okresie III RP. W 2014 wyróżniony medalem Polonia Mater Nostra Est. Otrzymał również m.in. Nagrodę im. Jerzego Łojka, Nagrodę im. Ireny i Franciszka Skowyrów, Medal Komitetu Powązkowskiego i Medal Pamiątkowy „10 lat IPN”.
Życie prywatne
Syn Stanisława i Aleksandry z domu Jankowskiej. Żonaty z Małgorzatą, z zawodu historykiem, ma troje dzieci: Annę, Stanisława i Krzysztofa.