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.