如何从userParameters属性获取Active Directory中的终端服务属性值

时间:2015-01-07 07:57:35

标签: attributes active-directory remote-desktop terminal-services changelog

我正在使用dirsync来获取Active Directory(更改日志)中已更改的属性值。 以下链接说明了如何使用目录同步来获取属性值:

' http://blogs.technet.com/b/isrpfeplat/archive/2010/09/20/using-the-dirsync-control.aspx'

我正在更改用户的远程桌面服务配置文件下的属性本地路径。我运行了一个客户端,它使用dirsync来获取AD中已更改的对象。 在客户端中,更改的属性为userParameters,值为加密形式。

CtxCfgPresent                                   P☺CtxCfgPresent???? ☻☺CtxWFProfi
lePath?↑→☺CtxWFHomeDir?????????????"☻☺CtxWFHomeDirDrive?☺CtxShadow????☺CtxMaxDis
connectionTime????☺CtxMaxConnectionTime????☺CtxMaxIdleTime???? ☻☺CtxWorkDirector
y?☺CtxCfgFlags1????"☻☺CtxInitialProgram?

有没有办法从userParameters获取实际值。

1 个答案:

答案 0 :(得分:3)

方法1:解析自己:)

信息的结构在[MS-TSTS]规范中描述:

http://msdn.microsoft.com/en-us/library/ff635189.aspx

方法2:IADsTSUserEx界面

例如,在C#中:

DirectoryEntry userEntry = new DirectoryEntry("LDAP://domain.com/CN=user1,CN=Users,DC=domain,DC=com", "user", "pwd")
IADsTSUserEx tsUser = userEntry.NativeObject as IADsTSUserEx;

IADsTSUserEx的定义是这样的:
(我只需要阅读我的项目中的信息,所以只有getter但没有setter)

[
ComImport,
InterfaceType(ComInterfaceType.InterfaceIsIDispatch),
Guid("C4930E79-2989-4462-8A60-2FCF2F2955EF")
]
private interface IADsTSUserEx
{
    string TerminalServicesProfilePath { get;}
    string TerminalServicesHomeDirectory { get;}
    string TerminalServicesHomeDrive { get;}
    bool AllowLogon { get;}
    long EnableRemoteControl { get;}
    long MaxDisconnectionTime { get;}
    long MaxConnectionTime { get;}
    long MaxIdleTime { get;}
    int ReconnectionAction { get;}
    int BrokenConnectionAction { get;}
    bool ConnectClientDrivesAtLogon { get;}
    bool ConnectClientPrintersAtLogon { get;}
    bool DefaultToMainPrinter { get;}
    string TerminalServicesWorkDirectory { get;}
    string TerminalServicesInitialProgram { get;}
}

您也可以使用其他脚本语言,它比C#更简单。

<强>的VBScript:

http://www.wisesoft.co.uk/scripts/vbscript_read-write_terminal_services_settings.aspx

<强>的PowerShell:

http://blogs.technet.com/b/heyscriptingguy/archive/2008/10/23/how-can-i-edit-terminal-server-profiles-for-users-in-active-directory.aspx