Używam System.DirectoryServices.DirectoryEntry do tworzenia użytkownika AD i wszystko działa poprawnie, z wyjątkiem pewnych właściwości specyficznych dla Pulpitu zdalnego.Zmiana właściwości serwera terminali użytkownika ADA za pomocą C#
Exemple:
newUser.Properties["msTSConnectClientDrives"].Value = false;
newUser.Properties["msTSConnectPrinterDrives"].Value = false;
newUser.Properties["msTSDefaultToMainPrinter"].Value = false;
nie rzucać żadnych wyjątków, więc myślę właściwości znajdują się w obiekcie, ale nie mają żadnego wpływu. Kiedy wchodzę do okna właściwości tego użytkownika, w zakładce "Środowisko" te 3 pola wyboru są nadal zaznaczone.
Czy brakuje mi czegoś szczególnego dla tych właściwości?
Dziękuję za pomoc.
EDIT:
Niestety byłem bardzo zajęty, oto przykładowy kod:
private string CreateNewADAccount(string accountName, string accountPassword)
{
try
{
PrincipalContext context = new PrincipalContext(ContextType.Domain, "SV-LITE", @"LITE\xxxxxxxx", "yyyyyyyy");
UserPrincipal newUser = new UserPrincipal(context);
newUser.SamAccountName = accountName;
newUser.UserPrincipalName = accountName;
newUser.Name = "LiteUser2015 - " + accountName;
newUser.DisplayName = "LiteUser2015 - " + accountName;
newUser.SetPassword(accountPassword);
newUser.PasswordNeverExpires = true;
newUser.UserCannotChangePassword = true;
newUser.Save();
// Set advanced properties
if (newUser.GetUnderlyingObjectType() == typeof(DirectoryEntry))
{
DirectoryEntry entry = (DirectoryEntry)newUser.GetUnderlyingObject();
entry.Properties["msTSConnectClientDrives"].Value = false;
entry.Properties["msTSConnectPrinterDrives"].Value = false;
entry.Properties["msTSDefaultToMainPrinter"].Value = false;
entry.Properties["msTSInitialProgram"].Value = "test";
entry.CommitChanges();
}
return newUser.Guid.ToString();
}
catch (Exception e)
{
MessageBox.Show("Failed to create PrincipalContext. Exception: " + e);
}
return null;
}
ja już to robić. – Karnalta
Czy możesz zaktualizować pytanie z dokładniejszym przykładem kodu? – Dan