Skip to content

Support for multiple groups excluded #229

Description

@Amadis11

The codebase analysis shows that excluded_group currently supports only a single group (read via GetWString, stored as std::wstring, exact string match). However, GetMultiSZ() already exists in RegistryReader.cpp and is used for trusted_rpids. This PR changes excluded_group to use REG_MULTI_SZ / GetMultiSZ() to support multiple groups. The same applies to excluded_account and excluded_group_netbios_address.
This is especially useful in multilingual environments where the same built-in group has different names depending on OS language (e.g. Administrators on English vs Administratorzy on Polish Windows) — both can now be specified simultaneously.
Changes in this PR:

excluded_accounts (REG_MULTI_SZ) — replaces single excluded_account, supports multiple accounts
excluded_groups (REG_MULTI_SZ) — replaces single excluded_group, supports multiple groups (both local and domain groups in a single list — CP checks both NetUserGetLocalGroups and NetUserGetGroups against all entries)
excluded_group_netbios_addresses (REG_MULTI_SZ) — replaces single excluded_group_netbios_address, supports multiple DCs with automatic failover
Backward compatibility maintained — old single-value keys still work as fallback
New installer dialog for easier configuration of all exclusion settings
Format reference documentation added

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions