1

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

我一直在研究 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 引用,我以前从未做过类似的事情。

4

1 回答 1

2

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

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

于 2010-01-04T21:03:58.240 回答