【发布时间】:2010-01-04 16:24:23
【问题描述】:
我有一个环境,我需要经常将参数更改为用户登录到终端服务器时启动的程序。截至目前,我们打开计算机管理管理单元并为用户编辑环境选项卡,并在“登录时启动以下程序:”下手动更改参数。我想自动化这个过程。
我一直在研究 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 引用,我以前从未做过类似的事情。
【问题讨论】:
-
另外,我没有使用启动脚本,要让更改获得批准会很麻烦。
标签: c# active-directory directoryservices terminal-services