Zarządzanie użytkownikami terminali za pośrednictwem System.DirectoryServices

Mam środowisko, w którym muszę często zmieniać parametry na program uruchamiany, gdy użytkownik loguje się do serwera terminali. W tej chwili otwieramy przystawkę zarządzania komputerem i edytujemy kartę środowiska dla użytkownika i ręcznie zmieniamy parametry w „Uruchom następujący program przy logowaniu:”. Chciałbym zautomatyzować ten proces.

Zajrzałem do System.DirectoryServices i System.DirectoryServices.AccountManagement i przeczytałem o tym wszystko, co mogę. Jak dotąd moje najlepsze przypuszczenie jest takie, że informacje, które muszę edytować, są przechowywane we właściwościach „Parametry” (najgorsza możliwa nazwa dla nieruchomości, ruiny googling). Przyczyną tego jest, gdy wymieniam wszystkie dostępne właściwości

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

CtxInitialProgram i CtxWorkDirectory wydają się istotne dla tego, z czym pracuję.

Teraz utknąłem w martwym punkcie, ponieważ nie mogę dowiedzieć się, jak znaleźć, znaleźć zasoby i pomóc mi poprawnie czytać i zapisywać wartości.

Każda pomoc byłaby bardzo mile widziana.

EDYTUJ - Znalazłem tę odpowiedź w innym miejscu w Internecie. Pytając gdzie indziej w Internecie znalazłem odpowiedź:

Niestety dane te są zakodowane w zastrzeżonym formacie. Jedynym obsługiwanym sposobem zarządzania programowego jest użycie interfejsu IADsTSUserEx ADSI dostarczanego z usługami terminalowymi. Zasadniczo po prostu rzutujesz właściwość NativeObject na ten interfejs COM (po utworzeniu wymaganego odwołania COM), a następnie uzyskasz dostęp do właściwości udostępnionych przez interfejs.

Teraz moje pytanie brzmi: jak ustawić referencję COM, nigdy wcześniej nie robiłem czegoś takiego.

questionAnswers(1)

yourAnswerToTheQuestion