Gerenciando usuários do terminal por meio de System.DirectoryServices

Eu tenho um ambiente onde eu preciso mudar freqüentemente os parâmetros para um programa que é iniciado quando um usuário faz o login no servidor de terminal. A partir de agora, abrimos o snap-in de gerenciamento do computador e editamos a guia do ambiente para o usuário e alteramos os parâmetros manualmente, em "Iniciar o seguinte programa no logon:". Eu gostaria de automatizar o processo.

Eu tenho olhado para System.DirectoryServices e System.DirectoryServices.AccountManagement e lendo tudo o que posso sobre isso. Até agora, meu melhor palpite é que as informações que preciso editar estão armazenadas nas Propriedades de "Parâmetros" (pior nome possível para uma propriedade, googling de ruínas). A razão para esse palpite é quando eu listo todas as propriedades que recebo

(...)
Name: HomeDirDrive
Value:
Name: Parameters
Value:                                                 P☺CtxCfgPresent????☺CtxCf
gFlags1????☺CtxShadow????*☻☺CtxMinEncryptionLevel? @☺CtxWorkDirectory???????????
?????????????????????"C☺CtxInitialProgram???????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????
???????????????
Name: PrimaryGroupID
Value: 513
(...)

CtxInitialProgram e CtxWorkDirectory parecem relevantes para o que estou trabalhando.

Agora estou preso como não consigo descobrir como, ou encontrar e recursos para me ajudar, lendo e escrevendo os valores corretamente.

Qualquer ajuda seria muito apreciada.

EDIT - Eu encontrei esta resposta em outro lugar na internet Perguntando em outro lugar na internet eu encontrei a resposta:

Infelizmente, esses dados são codificados em um formato proprietário. A única maneira com suporte para gerenciá-lo por meio de programação é usando a interface ADSI IADsTSUserEx que vem com serviços de terminal. Basicamente, você apenas lança a propriedade NativeObject para essa interface COM (depois de criar a referência COM necessária) e, em seguida, acessa as propriedades expostas pela interface.

Agora a minha pergunta é como configurar essa referência COM, eu nunca fiz nada parecido antes.

questionAnswers(1)

yourAnswerToTheQuestion