Use uma expressão regular, ou algo parecido, para dividir essa sequência em três partes. Sobrenome, nome, extra.
Você provavelmente pode usar a mesma funcionalidade para dividir o extra em MI e RGN, supondo que você tenha uma pequena lista de RGN (regiões?).
Usar a vírgula como um delimitador para extrair o sobrenome da frente é fácil. Encontrar os primeiros nomes com espaços pode ser mais difícil. No entanto, assumindo que aqueles com 3 MIs têm iniciais únicas, você pode procurar pelo primeiro caractere único como a primeira inicial do meio. Qualquer coisa antes disso é o primeiro nome.
Faça o que fizer, faça em etapas. Retire os últimos nomes, pois isso é fácil. O restante é FirstName MI [RGN]. Se os parênteses existem onde há uma região, isso torna isso fácil também. Tire essas fotos.
Isso deixa o Nome MI. Eu trabalharia da direita para a esquerda. Se o último caractere for um espaço, solte-o. Se é um personagem, e o personagem que resta dele é um espaço, então é inicial. Puxe-o para fora e adicione-o à frente do campo de destino para MI. Repita até que haja uma string multicharacter. Este é o final do primeiro nome. Parabéns, você acabou de dividir tudo.
Outra pergunta: você pode voltar ao AD e reexportar e obter os campos individuais e não o nome de exibição? (powershell, Get-ADUser ...
) Seria MUITO mais fácil remontar o nome de exibição do que fazer o que acabei de listar.