Consulta para listar todos los procedimientos almacenados

¿Qué consulta puede devolver los nombres de todos los procedimientos almacenados en una base de datos de SQL Server?

Si la consulta pudiera excluir los procedimientos almacenados del sistema, sería aún más útil.

SELECT name, 
       type
  FROM dbo.sysobjects
 WHERE (type = 'P')
Comentarios (3)

Según tengo entendido, el método "preferido" es utilizar las tablas de information_schema:

select * 
  from information_schema.routines 
 where routine_type = 'PROCEDURE'
Comentarios (1)
select *  
  from dbo.sysobjects
 where xtype = 'P'
   and status > 0
Comentarios (3)