Você não precisa necessariamente executar isso na tela de login, um exemplo:
systeminfo /FO LIST | find "System Locale"
Uma alternativa para desenvolvedores pode ser encontrada aqui: MSDN - GetSystemDefaultLocaleName
Este resultado será independente do usuário!
Não use um serviço apenas para obter esse valor, os serviços devem ser tarefas de longa duração.
Não use provedores de credenciais , eles são usados como métodos de autenticação.