Member 12758480 Ответов: 0

Обновление атрибута ad профиля служб терминалов с помощью ASP.NET с VB


Всем Привет,

Надеюсь, у вас все хорошо, я уже некоторое время сражаюсь с проблемой, когда я обновляю все остальные атрибуты в ad с помощью этого кода, он работает , однако для профиля служб терминалов (который встроен в AD ) с массивом я получаю ошибку как таковую

Unspecified error

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Runtime.InteropServices.COMException: Unspecified error


мой код выглядит следующим образом:
Dim LDAPUser = "domain\Administrator"
Dim LDAPPass = "MyPassword"
Dim CurrentComputerADLocation = "CN=User\, Test,OU=Users,DC=domain,DC=net"
Dim User As New System.DirectoryServices.DirectoryEntry("" + CurrentComputerADLocation + "", LDAPUser, LDAPPass)
        Dim ProDir = "\\\\FILESERVERTEST\\UserData$\\TestUser1"
        Dim RDProfile = "\\\\FILESERVERTEST2\\RD_tsprofiles$\\"
             Try
            User.InvokeSet("TerminalServicesProfilePath", "" + RDProfile + "")
            User.InvokeSet("TerminalServicesHomeDirectory", "" + ProDir + "")
            User.InvokeSet("TerminalServicesHomeDrive", "H:")
            User.CommitChanges()
            User.Close()
            LabelStatus.ForeColor = System.Drawing.ColorTranslator.FromHtml("#256fe8")
            LabelStatus.Text = "User Account has been successfully labelled"
        Catch InvOpEx As InvalidOperationException

            Console.WriteLine(InvOpEx.Message)
            LabelStatus.Text = InvOpEx.Message
        End Try



я даже пробовал использовать оператор invokeSet, подобный этому, но все равно получаю ту же ошибку

<br />
User.InvokeSet("TerminalServicesProfilePath", new object[] {RDProfile})<br />
User.InvokeSet("TerminalServicesHomeDirectory", new object[] {ProDir})<br />
User.InvokeSet("TerminalServicesHomeDrive", new object[] {"H:"})<br />


может ли кто-нибудь показать мне, где я иду не так, пожалуйста

любая и всякая помощь всегда ценится

Спасибо
Роберт

Что я уже пробовал:

я даже пробовал использовать оператор invokeSet, подобный этому, но все равно получаю ту же ошибку

User.InvokeSet("TerminalServicesProfilePath", new object[] {RDProfile})
User.InvokeSet("TerminalServicesHomeDirectory", new object[] {ProDir})
User.InvokeSet("TerminalServicesHomeDrive", new object[] {"H:"})
<pre>

[no name]

Поймайте любое исключение и узнайте точно, что это такое. Пока вы не сделаете этого, вы не сможете исправить это.

Member 12758480

спасибо у меня есть Catch InvOpEx As InvalidOperationException который печатается на этикетке но ничего не показывает :(

у меня есть мое заявление catch в неправильном месте ?
спасибо

Member 12758480

Единственная причина , по которой я спрашиваю о своем заявлении catch, заключается в том, что оно ничего не отображает. экран ошибки показывает только проблему того, что в данный момент находится на следующей строке

Пользователь.InvokeSet ("TerminalServicesProfilePath", "" + RDProfile + "")

[no name]

Нет, вы ловите неправильное исключение.

Member 12758480

спасибо за вашу проницательность здесь, это действительно ценится, я получил его, чтобы показать мне какой-то код ошибки прямо сейчас

Ошибка HRESULT E_FAIL была возвращена из вызова COM-компонента.

но я не нахожу ничего полезного.

мое утверждение catch выглядит следующим образом :

       Catch

            Dim InterEx As New System.Runtime.InteropServices.COMException

            LabelStatus.Text = InterEx.Message.ToString 

Member 12758480

спасибо за вашу помощь, оказывается, привязка неправильная

однако теперь, когда я продвинулся дальше , был бы признателен за любую дополнительную помощь, которую вы можете предложить, пожалуйста
Dim strPath As String = " LDAP: / / DOMAINCONTROLLER"
Dim strMyADPassword = " MYPASSOWRD"
Dim strMyADUserName = " MUADMINUSER"

Дим usertochange = "СN=\ пользователей, теста,ou=пользователи,DC=домен,DC=чистый"
Тусклый дирентри как новая система.Каталог.Класс directoryentry(strPath, strMyADUserName, strMyADPassword, тем, чтобы заменить его.Безопасный)
Dim userDE As DirectoryEntry = direntry.Дети.Find ("CN=" & usertochange)

новая ошибка - " нет такого объекта на сервере, и когда я меняю его на samAccountName, он говорит неправильный DN , но учетная запись существует

какие-нибудь варианты, которые вы можете придумать, которые я, возможно, пропустил, пожалуйста?
заранее спасибо

Member 12758480

привет, мне удалось заставить его обновить путь профиля и букву домашнего диска пути профиля, но когда я прихожу, чтобы сделать TerminalservicesProfile, он возвращается с неизвестным именем


       User.InvokeSet("TerminalServicesProfilePath", New Object() {pampath2})
        User.InvokeSet("TerminalServicesHomeDrive", New Object() {"H:"})


как всегда ценю любую помощь или пощечины которые вы можете мне дать на этот раз

0 Ответов