New-ADUser, ошибка при настройке имен участников службы

Я пытаюсь создать сценарий нового процесса создания пользователя на серверах Windows, и одной частью этого сценария является установка записей SPN для этого конкретного пользователя. Но я продолжаю получать сообщение об ошибке "New-ADUser: ссылка на имя недействительна", когда я пытаюсь поместить параметр SPN со значениями. Я пытаюсь следовать примеру с веб-сайта Microsoft (Link). Любая помощь будет оценен.

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

Import-Module ServerManager
Add-WindowsFeature RSAT-AD-PowerShell
Import-Module ActiveDirectory
$properties=@{
    Name="SQL Service Account For $customerName"
    DisplayName= "SQL Service Account For $customerName"
    ServicePrincipalNames= @{Add="MSSQLSvc\'$dbServerName.$domainName':1433","MSSQLSvc\'$dbServerName':1433"}
    Description= "SQL Service Account For $customerName"
    UserPrincipalName= "$sqlUser@$domainName"
    GivenName= "SQL Service Account For"
    Surname= "$customerName"
    SamAccountName= $sqlUser
    AccountPassword= $pwdsql
    Path= $path
    LogonWorkstations= $dbServerName
    TrustedForDelegation= $true
    Enabled= $True
    Credential= $credential
    PasswordNeverExpires= $True
    CannotChangePassword= $True
  }


New-ADUser @properties

Спасибо,

Рахул


person r4hul    schedule 26.03.2016    source источник
comment
Удалите одинарные кавычки из имен участников-служб, сделайте их одной строкой, разделенной запятыми, в двойных кавычках.   -  person Ansgar Wiechers    schedule 26.03.2016
comment
@AnsgarWiechers, пробовал, но не работает. Я все еще получаю ту же ошибку. Разве это не должно работать в любом случае?   -  person r4hul    schedule 28.03.2016
comment
@AnsgarWiechers, так что это работает, если я также удалю @{Add=.... Также изменил строку таким образом, чтобы избежать проблем с: и изменил \ на / и теперь создает SPN. Все еще интересно, какой из них является правильным форматом.   -  person r4hul    schedule 28.03.2016
comment
Правильный формат: задокументирован. И да, это должна быть косая черта. Я пропустил это в своем ответе.   -  person Ansgar Wiechers    schedule 28.03.2016
comment
@AnsgarWiechers Спасибо за ваш вклад.   -  person r4hul    schedule 28.03.2016


Ответы (1)


Итак, вот как я заставил это работать. Я не уверен, что это сработает во всех случаях, но пока что с моим случаем все в порядке. Я изменил ввод имени участника службы следующим образом:

ServicePrincipalNames= "MSSQLSvc/${dbServerName}.${domainName}:1433", "MSSQLSvc/${dbServerName}:1433"

Это создает две отдельные записи в записях SPN. Если вы поместите одну строку, разделенную запятыми, она создаст одну запись с двумя элементами, разделенными запятыми.

Пожалуйста, дайте мне знать, если кто-то знает, почему это работает именно так, а не так, как показано на Microsoft Url, о котором я упоминал в своем вопросе. Спасибо.

person r4hul    schedule 28.03.2016
comment
Я проверил это вчера, и я думаю, что, поскольку это командлет New-ADUser, нет необходимости в глаголах (добавить, удалить, заменить) в хэш-таблице для параметра: поскольку объект ранее не существовал, единственный разумный вариант - добавить значения во вновь созданный объект. Похоже, что документация неправильно просто скопирована из командлета Set-ADUser. - person Eelco L.; 29.03.2017