I have a ASP.NET application which runs under the NETWORKSERVICE account. I instrument aspects of the application via custom perfmon objects. I need to dynamically (on-the-fly) create/destroy perfmon objects and instances due to the nature of the application. I'd rather not delegate thsi to an external process as it wouls slow things down. Under ASP.NET 1.1 I simply impersonated around the perfmon creation. We've ported to ASP.NET 2.0 and this impersonation no longer works. As a test I changed the the pool identity to the privileged user and it worked. Obviously not something I want to do in production.