For custom inventory classes there is delgrp, but for custom attributes that were added to the discovery tables via DDR there isn't a tool out there. Here is a sample stored procedure that should do the trick - as always when directly editing the database be sure to make a backup before hand. Before running queries or procedures like this that modify the discovery tables be sure to shut down the SMS services on the site server, close any open admin UI instances, and shut down WMI on the provider server.
So, for example to remove a property named "SomePropertyName" from the System discovery class:
sp_RemoveDiscoveryProperty 'SomePropertyName', 'System'
SET QUOTED_IDENTIFIER OFFIF OBJECT_ID ( 'sp_RemoveDiscoveryProperty', 'P' ) IS NOT NULL DROP PROCEDURE sp_RemoveDiscoveryProperty;GOCREATE PROCEDURE sp_RemoveDiscoveryProperty @propName varchar(255),@discArchName varchar(255)ASBEGIN DECLARE @columnName varchar(255) DECLARE @archBase varchar(255) DECLARE @discArchKey intselect @archBase = BaseTableName, @discArchKey = DiscArchKey from DiscoveryArchitectures where DiscArchName = @discArchNameIF @archBase = NULLBEGINPRINT "Architecture '" + @discArchName + "' not found, aborting..."RETURN (-1)ENDselect @columnName = ColumnName from DiscPropertyDefs where DiscArchKey = @discArchKey and PropertyName = @propNameIF @columnName = NULLBEGINPRINT "The property '" + @propName + "' was not found in the DiscPropertyDefs table, aborting..."RETURN (-1)ENDPRINT "Removing property '" + @propName + "' from the DiscPropertyDefs table."delete DiscPropertyDefs where DiscArchKey = @discArchKey and ColumnName = @columnNamePRINT "Removing column '" + @columnName + "' from the '" + @archBase + "' table."EXECUTE ("alter table " + @archBase + " DROP COLUMN " + @columnName)PRINT "Recreating the resource view for architecture '" + @discArchName + "'"EXEC sp_CreateResourceView @discArchKeyEND