Подача переменных в команды PowerShell в New-ADUser cmd

Я пытаюсь ввести некоторые переменные в командлет Powershell New-ADuser, чтобы автоматизировать создание пользователей. Это отлично работает, если я жестко кодирую значения, но когда я пытаюсь передать ему переменные, я получаю следующие ошибки:

New-ADUser : A positional parameter cannot be found that accepts argument 'System.Object[]'.
At C:\users\test\Documents\test.ps1:103 char:1
+ New-ADUser -SamAccountName $Target -Name $TargetFullname  -UserPrincipalName [st ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [New-ADUser], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.NewADUser

Команда такая:

New-ADUser -SamAccountName $Target -Name $TargetFullname  -UserPrincipalName [string]::Concat($Target,"@test.local") 
-AccountPassword (ConvertTo-SecureString -AsPlainText $TargetPassword  -Force) -Enabled $true -PasswordNeverExpires $true -Path 'CN=Users,DC=test,DC=local'

У меня возникают аналогичные проблемы при использовании командлетов office365. Мне здесь не хватает основной синтаксической ошибки?

Изменить

Создание нового вопроса для проблемы office365: Ошибки аргумента с командлетом office 365


person barconr    schedule 23.06.2014    source источник
comment
Было бы лучше, если бы вы создали новый вопрос и проверили ответ @Tim-Ferrill.   -  person Adil Hindistan    schedule 23.06.2014
comment
Спасибо, я создал новый вопрос.   -  person barconr    schedule 23.06.2014


Ответы (1)


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

-UserPrincipalName ([string]::Concat($Target,"@test.local"))
person Tim Ferrill    schedule 23.06.2014
comment
Также подойдет простой ввод "[email protected]" - person Mathias R. Jessen; 23.06.2014
comment
Правда. Я пытался показать, что это проблема с порядком операций, но это тоже сработает. У меня также были проблемы с использованием простой конкатенации, подобной этой в старых версиях PowerShell. - person Tim Ferrill; 23.06.2014
comment
Это устранило проблему с командами AD. См. OP для обновленной проблемы! Спасибо - person barconr; 23.06.2014