Предупреждение: не удаляйте руками информацию из базы. Если вы всё же решились на это, то не удаляйте руками информацию из базы.
Вдоволь наигравшись с инвентаризацией MIF-файлов и удалив их с клиента, я обнаружил, что новые классы не удалились из базы данных. В голову мне не пришло ничего лучше, чем через SQL Management Studio удалить новые представления и таблицы, но в базе ещё остались хранимые процедуры и связи с другими таблицами, после чего Resource Explorer вообще перестал показывать данные инвентаризации по клиентам.
В dataldr.log видно, что сервер не может принять отчёт по инвентаризации:
Defining attributes for group INFOABOUTPC…
CGroup::DefineAttributes — Detected schema change. Waiting for the threads to finish the queue.
Thread 7296 has been granted exclusive access.
CGroup::DefineAttributes — Proceeding with schema change.
CDefinedGroup::InsertDefinedAttribute — could not find table
CGroup::DefineAttributes — couldn’t define attributes
CGroup::DefineGroupAndAttributes — couldn’t define attributes for INFOABOUTPC
CMachineSource::InsertMachine — could not validate machine
Cannot process MIF XHE4OF0SZ.MIF, moving it to C:\Program Files (x86)\Microsoft Configuration Manager\inboxes\auth\dataldr.box\BADMIFS\1kylac3e.MIF
STATMSG: ID=2703 SEV=W LEV=M SOURCE=»SMS Server» COMP=»SMS_INVENTORY_DATA_LOADER» SYS=SCCM01 SITE=M01 PID=2864 TID=7296 GMTDATE=?? ??? 02 09:27:28.848 2011 ISTR0=»XHE4OF0SZ.MIF» ISTR1=»C:\Program Files (x86)\Microsoft Configuration Manager\inboxes\auth\dataldr.box\BADMIFS\1kylac3e.MIF» ISTR2=»» ISTR3=»» ISTR4=»» ISTR5=»» ISTR6=»» ISTR7=»» ISTR8=»» ISTR9=»» NUMATTRS=0
Подсовывание назад MIF-файла с теми же классами не помогло:
CMachineSource::InsertMachine — machine info is resynced data (ie: MIF is a full/resync report).
STATMSG: ID=2715 SEV=I LEV=M SOURCE=»SMS Server» COMP=»SMS_INVENTORY_DATA_LOADER» SYS=SCCM01 SITE=M01 PID=3576 TID=5792 GMTDATE=?? ??? 02 14:12:47.874 2011 ISTR0=»SMS Inventory Agent» ISTR1=»» ISTR2=»» ISTR3=»» ISTR4=»» ISTR5=»» ISTR6=»» ISTR7=»» ISTR8=»» ISTR9=»» NUMATTRS=0
*** select InstanceKey,RevisionID,AgentID,Color00,Serial_Number00,Vidan00 from PCinfo_DATA where MachineID = 2 order by InstanceKey ASC
*** [42S02][208][Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name ‘PCinfo_DATA’.
CMachine::EnumGroups — error in csql->Execute
Command:~select InstanceKey,RevisionID,AgentID,Color00,Serial_Number00,Vidan00 from PCinfo_DATA where MachineID = 2 order by InstanceKey ASC
CMachineSource::InsertMachine — could not enum groups. Adding machine.
Сделав запрос в базу данных, обнаружилось, что классы эти до сих пор присутствуют:
Select GroupName, SpecificTableName, HistoryTableName, GroupClass
From GroupMap
Утилита DelGrp.exe из набора System Center Configuration Manager 2007 Toolkit V2 отказалась удалять классы:
После этого я решил воспользоваться утилитой Site Sweeper. Выбрал ненужные мне классы:
И удалил их:
Следующий отчёт инвентаризации с клиента был корректно обработан.
А совсем камикадзе могут попробовать вычистить неиспользуемые классы из базы руками.