在新的ADUser cmd中将变量馈送到PowerShell命令中

在新的ADUser cmd中将变量馈送到PowerShell命令中,powershell,active-directory,cmdlet,Powershell,Active Directory,Cmdlet,我正在尝试向Powershell cmdlet 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 -SamAccountN

我正在尝试向Powershell cmdlet 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 cmdlet时遇到了类似的问题。我是否缺少一个基本语法错误

编辑

正在为Office 365问题创建新问题:
我认为这与您如何构建UPN有关。尝试将该部分用括号括起来:

-UserPrincipalName ([string]::Concat($Target,"@test.local"))

只需键入
”$Target@test.local“
也能正常工作。我试图表明这是一个操作顺序的问题,但这也会起作用。在旧版本的PowerShell上使用简单的连接也有问题。这解决了AD命令的问题。更新的问题见OP!谢谢,如果您创建了一个新问题并检查@Tim Ferrill的答案作为答案会更好。谢谢,我创建了一个新问题。