Исключение вызывает "InvokeSet" с аргументом (ами) "2": "Неизвестная ошибка (0x80005000)" - PullRequest
0 голосов
/ 14 сентября 2018

Я отыскивал все первые 3 страницы Google без всякой помощи , сработало

Я пытаюсь удаленно обновить дом и местоположение профиля на вкладке Службы удаленного рабочего стола в Active Directory - пользователи и компьютеры.

Вот мой код:

Invoke-Command -ComputerName $DomainController -Credential $Credentials -ScriptBlock{   
    $User = [ADSI] "LDAP://CN=Paul Beenis,OU=Staff,DC=domain,DC=local"
    $User.psbase.Invokeset("TerminalServicesProfilePath","\\server\_Profile\pbeenis")
    $user.psbase.InvokeSet("TerminalServicesHomeDrive", "P:")
    $User.psbase.Invokeset("TerminalServicesHomeDirectory","\\server\_Home\pbeenis")
    $User.setinfo()
}

Вот исключение:

Exception calling "InvokeSet" with "2" argument(s): "Unknown error (0x80005000)"
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
+ PSComputerName        : DC03

Exception calling "InvokeSet" with "2" argument(s): "Unknown error (0x80005000)"
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException
    + PSComputerName        : DC03

Exception calling "InvokeSet" with "2" argument(s): "Unknown error (0x80005000)"
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException
    + PSComputerName        : DC03

The following exception occurred while retrieving member "setinfo": "Unknown error (0x80005000)"
    + CategoryInfo          : NotSpecified: (:) [], ExtendedTypeSystemException
    + FullyQualifiedErrorId : CatchFromBaseGetMember
    + PSComputerName        : DC03

То, что сработало:

  • RDP в $ DomainController и ввод команд в локальный сеанс Powershell
  • Вкратце используя Enter-PSsession в середине моего скрипта, отправив 4 команды, exit-pssession. Тем не менее, это ненадежно и, кажется, не работает более 1 раза.

Вещи, которые НЕ работали:

  • Предложения в Google говорят вам скопировать tsuserex.dll и tsuserex.dll.mui с сервера Windows 2012, вставить его в ваши c: \ windows \ system32 и c: \ windows \ system32 \ en-us (соответственно), затем используйте команду regsvr32, чтобы зарегистрировать DLL. Это не сработало, я пробовал это на 3 разных серверах.

1 Ответ

0 голосов
/ 14 сентября 2018

Ответ на эту проблему заключается в том, что я идиот.

Этот код правильный

$User = [ADSI] "LDAP://$using:FullUserPath"
$User.psbase.Invokeset("TerminalServicesProfilePath","$using:ProfileLocation")
$user.psbase.InvokeSet("TerminalServicesHomeDrive", "$using:HomeDrive")
$User.psbase.invokeset("TerminalServicesHomeDirectory","$using:HomeLocation")
$User.setinfo()

Однако мои переменные были неверными (чего никто не мог узнать, посмотревчто этот вопрос.) Я назначал $ FullUserPath до $ DisplayName

$FullUserPath        = "CN=$DisplayName,$UserPath"
$DisplayName         = ($FirstName+" "+$LastName).ToString()

Если вы получаете эту ошибку, и вы выполнили шаги в моем вопросе в разделе «Вещи, которые не работали» Это означает, что ваши переменные былиневерен.Сделайте write-host для всех ваших переменных и убедитесь, что они хороши

Привет @Jordan за указание на то, что мои переменные могут быть неправильными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...