无法接受$ null

时间:2018-09-30 23:58:33

标签: powershell

我正在尝试在名为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

1 个答案:

答案 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>作为变量,而单引号则按字面意思读取。