我正在尝试在名为public的OU中创建一个AD用户,该AD用户的数字用户名已启用,密码集为password1。当我运行命令时,出现错误消息:找不到接受参数'$ null'的位置参数。
任何帮助将不胜感激
这是我放入Powershell的内容
`New-ADUser -Name "BoB Glen" -GivenName "BoB"-Surname "Glen" -DisplayName "2003487" $secpasswd = ConvertTo-SecureString -String "pa$$word1" -AsPlainText -Force -AccountPassword $secpsswd -Enabled $true -Path "OU=Public,DC=Company,DC=epl,DC=local"`
这是整个错误
New-ADUser : A positional parameter cannot be found that accepts argument '$null'.
At line:1 char:1
+ New-ADUser -Name "Adam Bandola" -GivenName "Adam" -Surname "Bandola" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [New-ADUser], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.NewADUser
答案 0 :(得分:1)
好吧,让我们分解发生的事情:
New-ADUser -Name "BoB Glen" -GivenName "BoB"-Surname "Glen"
-DisplayName "2003487" $secpasswd = ConvertTo-SecureString
-String "pa$$word1" -AsPlainText -Force -AccountPassword $secpsswd
-Enabled $true -Path "OU=Public,DC=Company,DC=epl,DC=local"
符号`是powershell中的转义字符。如何使用它的一个例子是:
write-output " `" "
这将输出:” 而不是and错误:缺少终止符,这是我做的“”。您还可以使用它将长命令拆分为多行,例如
Get-Alias`
-name "%"
在Command中,您尝试使用-任何作为参数,紧随其后的是将要提交给该参数的值
-parameter Value
在powershell中, $ 也是一个变量。
$Hello = "World"
当前遇到的问题是您正在调用命令,然后尝试在命令中间创建变量,以及以转义键开始命令并以转义键结束命令(除非它的一部分)拆分为新行的较大命令)
您可以用括号包围值,例如:(此处是新命令)
有效的命令如下所示:
New-ADUser -Name "BoB Glen" -GivenName "BoB"-Surname "Glen" -DisplayName "2003487"`
-AccountPassword (ConvertTo-SecureString -String 'pa$$word1' -AsPlainText -Force)`
-Enabled $true -Path "OU=Public,DC=Company,DC=epl,DC=local"
您会注意到变量 $ secpasswd 已删除,命令 ConvertTo-SecureString 位于括号()的第一个和最后一个转义符内删除了字符`,在命令的新行中添加了转义字符,以使其在视觉上更易理解,并最终在单词 pa $$ word 周围加上单引号,因为双引号将尝试读取 $ < / strong>作为变量,而单引号则按字面意思读取。