Back when I was 15… Just kidding, let’s get straight to the point. I’ve seen a lot of queries and baselines that look for a specific service or feature or maybe group. These are generally fine to use if you only need to account for one language. However did you know the local Administrators group, typically just “Administrators” in most languages; is actually Administradores in Portuguese? Therefor the script you have looking in the Administrators group will fail on some other languages. In this case, it’s better to use the SID (S-1-5-32-544).
Recently I came across some other queries for DHCP Servers. The queries are setup to look for service Display Name = ‘DHCP Server’. Which, again, may work for some environments with only one language. However in Spanish the service is “Servidor DHCP“. In French it’s “Serveur DHCP“. In some cases it’s just hyphenated “DHCP-Server“. So in my case I was missing out on 5 DHCP servers in my organization. Depending on what those queries or collections are used for, that could be a big mistake!
The better approach for the above scenario is to use the service name, NOT the Display Name. The service name should be the same in all languages (I think). So changing my query to use service Name = “DHCPServer” brought in an additional 5 servers.
select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_SERVICE on SMS_G_System_SERVICE.ResourceID = SMS_R_System.ResourceId where SMS_G_System_SERVICE.Name = "DHCPServer"
Keep this in mind if your organization uses multiple languages.