C# 通过System.DirectoryServices管理终端用户
在我的环境中,我需要经常更改用户登录到终端服务器时启动的程序的参数。现在,我们打开计算机管理管理单元,为用户编辑环境选项卡,并在“登录时启动以下程序:”下手动更改参数。我想自动化这个过程 我一直在查看System.DirectoryServices和System.DirectoryServices.AccountManagement,并尽我所能阅读有关它的所有信息。到目前为止,我最好的猜测是,我需要编辑的信息存储在“Parameters”属性中(最糟糕的属性名称是谷歌搜索)。这种猜测的原因是当我列出我得到的所有属性时C# 通过System.DirectoryServices管理终端用户,c#,active-directory,directoryservices,terminal-services,C#,Active Directory,Directoryservices,Terminal Services,在我的环境中,我需要经常更改用户登录到终端服务器时启动的程序的参数。现在,我们打开计算机管理管理单元,为用户编辑环境选项卡,并在“登录时启动以下程序:”下手动更改参数。我想自动化这个过程 我一直在查看System.DirectoryServices和System.DirectoryServices.AccountManagement,并尽我所能阅读有关它的所有信息。到目前为止,我最好的猜测是,我需要编辑的信息存储在“Parameters”属性中(最糟糕的属性名称是谷歌搜索)。这种猜测的原因是当我
(...)
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引用之后),然后访问该接口公开的属性。此外,我没有使用启动脚本,要获得更改批准会很麻烦。