通过System.DirectoryServices管理终端用户

我有一个环境,我需要经常将参数更改为用户登录终端服务器时启动的程序。 截至目前,我们打开计算机管理管理单元并编辑用户的环境选项卡,并在“登录时启动以下程序:”下手动更改参数。 我想自动化这个过程。

我一直在寻找System.DirectoryServices和System.DirectoryServices.AccountManagement并阅读我所能做的一切。 到目前为止,我最好的猜测是我需要编辑的信息存储在“参数”属性中(对于属性来说可能是最糟糕的名称,废话搜索)。 猜测的原因是我列出了我得到的所有属性

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

CtxInitialProgram和CtxWorkDirectory似乎与我正在使用的内容相关。

现在我陷入困境,因为我无法弄清楚如何,或找到和资源来帮助我,正确地读取和写入值。

任何帮助将不胜感激。

编辑 – 我在互联网上的其他地方找到了这个答案在互联网上的其他地方问我找到了答案:

不幸的是,这些数据是以专有格式编码的。 以编程方式管理它的唯一受支持的方法是使用终端服务附带的IADsTSUserEx ADSI接口。 您基本上只是将NativeObject属性强制转换为此COM接口(在创建所需的COM引用之后),然后访问该接口公开的属性。

现在我的问题是如何设置COM引用,我之前从未做过类似的事情。

在互联网上的其他地方问我找到了答案:

不幸的是,这些数据是以专有格式编码的。 以编程方式管理它的唯一受支持的方法是使用终端服务附带的IADsTSUserEx ADSI接口。 您基本上只是将NativeObject属性强制转换为此COM接口(在创建所需的COM引用之后),然后访问该接口公开的属性。