Repository settings report shows no settings defined for all categories on all GPOs. (NETIQKB50160)

  • 7750160
  • 02-Feb-2007
  • 02-Nov-2007

Resolution

fact
NetIQ Group Policy Administrator 4.6

symptom

Repository settings report shows "no settings defined" for all categories on all GPOs.



symptom
GPO settings report returns information on links, but nothing for user or computer configuration.

cause
This problem occurs if a GPO is missing required records in the fa_rep_ads_attributes table.  These required records are attr_name = 'objectGUID' and attr_name = ?distinguishedName?.  GPA queries for these records when pulling data into the FA_GP_STUDIO database to generate a settings report.

fix

A workaround for to fix the missing records is to check out and check in a GPO. When you check out and check in a GPO, GPA inserts a new set of records into the fa_rep_ads_attributes table for the new version of the GPO.  When GPA inserts the new records, it obtains the objectGUID record from the GPO in Active Directory and then adds it to the fa_rep_ads_attributes table. The drawback to this workaround is that it also updates the version number of the GPO.

Another solution is to run a script to fix the fa_rep_attributes table. The following script retrieves and inserts any missing objectGUID records and distinguishedName records. This fixes the settings report without changing the GPO version number. 

Follow these steps to run the script:

  1. Backup your GPO_Repository database.
  2. Start SQL Query Analyzer in the Microsoft SQL Server program group.
  3. Connect to the SQL Server that is hosting the GP Repository database.
  4. In the Object Browser, select the GPO_REPOSITORY database.
  5. In the Query window, paste the following script, and then on the Query menu select Execute.

DECLARE @IDCursor CURSOR
DECLARE @adso_id uniqueidentifier
DECLARE @adso_version int

SET @IDCursor = CURSOR SCROLL DYNAMIC
FOR
SELECT distinct attr_adso_id FROM fa_rep_ads_attributes

OPEN @IDCursor

FETCH NEXT FROM @IDCursor INTO @adso_id
WHILE @@FETCH_STATUS = 0
BEGIN
    DECLARE @VersionCursor CURSOR
    SET @VersionCursor = CURSOR SCROLL DYNAMIC
    FOR
    SELECT distinct attr_adso_version FROM fa_rep_ads_attributes where attr_adso_id = @adso_id

    OPEN @VersionCursor
    FETCH NEXT FROM @VersionCursor INTO @adso_version
    WHILE @@FETCH_STATUS = 0
    BEGIN
        IF NOT EXISTS (select * from fa_rep_ads_attributes where attr_adso_id = @adso_id and attr_adso_version = @adso_version and attr_name = 'objectGUID')
        BEGIN
            INSERT INTO fa_rep_ads_attributes (attr_adso_id, attr_adso_version, attr_name, attr_control_code, attr_type, attr_value_sequence, attr_value_count, attr_value)
            VALUES (@adso_id, @adso_version, 'objectGUID', 2, 8, 1, 1, @adso_id)
        END

        IF NOT EXISTS (select * from fa_rep_ads_attributes where attr_adso_id = @adso_id and attr_adso_version = @adso_version and attr_name = 'distinguishedName')
        BEGIN
            INSERT INTO fa_rep_ads_attributes (attr_adso_id, attr_adso_version, attr_name, attr_control_code, attr_type, attr_value_sequence, attr_value_count, attr_value)
            VALUES (@adso_id, @adso_version, 'distinguishedName', 2, 1, 1, 1, convert(varbinary, convert(nvarchar, 'x')))
        END

        FETCH NEXT FROM @VersionCursor INTO @adso_version
    END
    CLOSE @VersionCursor
    DEALLOCATE @VersionCursor

    FETCH NEXT FROM @IDCursor INTO @adso_id
ENDT>

CLOSE @IDCursor
DEALLOCATE @IDCursor

.


Additional Information

Formerly known as NETIQKB50160