Hello guys!
I am trying to access to User-Properties from my C#-Programm.
It is no problem to set "Sirname", "Mail", "scriptPath", "HomeDirectory" and so on.
But I have problems with the "TerminalServices"-Attributes like "TerminalServicesProfilePath".
First time I tried it like that:
DirectoryEntry entry = new DirectoryEntry("LDAP://OU=Users,DC=COMPANY,DC=COM");DirectoryEntries entries = entry.Children; entry = entries.Add("CN=" + textBox_name.Text, "user");
entry.Properties["TerminalServicesProfilePath"].Value = textBox_TerminalServiceProfil.Text;
|
But I read that I can't access to this attribute in that way.
Then I heard about ActiveDs.dll and TSUSEREXLib.dll. I got these 2 dll-Files and set a reference to them.
Now my code looks like that:
DirectoryEntry entry1 = new DirectoryEntry("path to user"); |
ActiveDs.IADsUser iADsUser1 = (ActiveDs.IADsUser)entry1.NativeObject; |
TSUSEREXLib.IADsTSUserEx m_TsUser = (TSUSEREXLib.IADsTSUserEx)iADsUser1; |
m_TsUser.TerminalServicesProfilePath = path1; |
entry1.CommitChanges(); |
But now my programm throws an exception:
System.InvalidCastException:
Das COM-Objekt des Typs "System.__ComObject" kann nicht in den
Schnittstellentyp "TSUSEREXLib.IADsTSUserEx" umgewandelt werden. Dieser
Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf
an die COM-Komponente für die Schnittstelle mit der IID
"{C4930E79-2989-4462-8A60-2FCF2F2955EF}" aufgrund des folgenden Fehlers
nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt
(Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE)).
in english:
System.InvalidCastException: The
COM-Object of the type "System.__ComObject" cannot be casted to the interface type "TSUSEREXLib.IADsTSUserEx". This process could not be performed because the
QueryInterface-call to the COM-component for the inteface with the IID
"{C4930E79-2989-4462-8A60-2FCF2F2955EF}" could not be performed because
of the following error: interface not provided
(Exception HRESULT: 0x80004002 (E_NOINTERFACE)).I also tried it only with:
TSUSEREXLib.IADsTSUserEx m_TsUser = (TSUSEREXLib.IADsTSUserEx)entry1.NativeObject;
But the Programm got the same error again.
I am working with Windows 2k and the Visual Studio 2005.
I hope you can help me.
Greetings
Manuel