导入模块ActiveDirectory powershell错误

导入模块ActiveDirectory powershell错误,powershell,Powershell,我正在创建一个脚本,要求用户输入名字和姓氏,并在Active Directory的组中实现它。下面显示了脚本的启动方式 Import-Module ActiveDirectory #Get-Command New-ADUser -Syntax $firstName = Read-Host -Prompt "Please enter the first name" $lastName = Read-Host -Prompt "Please enter the la

我正在创建一个脚本,要求用户输入名字和姓氏,并在Active Directory的组中实现它。下面显示了脚本的启动方式

Import-Module ActiveDirectory

#Get-Command New-ADUser -Syntax

$firstName = Read-Host -Prompt "Please enter the first name"
$lastName = Read-Host -Prompt "Please enter the last name"
下面的文本显示了放置信息的脚本主体

New-ADUser ` 
    -Name "$firstName $lastName" `
    -GivenName $firstName `
    -Surname $lastName `
    -UserPrincipalName = "$firstName.lastname"
    -EmailAddress "$firstName.$lastName@<domain>"
    -ChangePasswordAtLogon 1 `
    -Enabled 1 `
    -StreetAddress "<info>" `
    -Office "<info>" `
    -State "<info>" `
    -PostalCode "<info>" `
    -Country "<info>" `
    -Path "<path>" 

我检查了拼写,这似乎不是问题。我是否犯了一个明显的错误?

您的示例显示了
-name
“$firstName$lastName”
之间的空格,但错误的显示方式不同。仔细检查是否有空位

您还缺少一些反勾号,一个在UserPrincipalName行之后,一个在emailaddress行之后,并且在第一个反勾号之后有一个额外的空间

New-ADUser `
  -Name "$firstName $lastName" `
  -GivenName $firstName `
  -Surname $lastName `
  -UserPrincipalName = "$firstName.lastname" `
  -EmailAddress "$firstName.$lastName@<domain>" `
  -ChangePasswordAtLogon 1 `
  -Enabled 1 `
  -StreetAddress "<info>" `
  -Office "<info>" `
  -State "<info>" `
  -PostalCode "<info>" `
  -Country "<info>" `
  -Path "<path>" 
newaduser`
-名称“$firstName$lastName”`
-GivenName$firstName`
-姓氏$lastName`
-UserPrincipalName=“$firstName.lastname”`
-电子邮件地址“$firstName.$lastName@”`
-ChangePasswordAtLogon 1`
-启用1`
-街道地址“”`
-办公室“`
-状态“”`
-后代码“”`
-国家“`
-路径“”

删除反勾(
`
)后的尾随空格,并放置缺少的空格:)

newaduser`
-名称“$firstName$lastName”`
-GivenName$firstName`
-姓氏$lastName`
-UserPrincipalName=“$firstName.lastname”`
-电子邮件地址“$firstName.$lastName@”`
-ChangePasswordAtLogon 1`
-启用1`
-街道地址“”`
-办公室“`
-状态“”`
-后代码“”`
-国家“`
-路径“”

这看起来在反勾号字符后面有一个空格。这就是用它来断线的危险。如果您更喜欢它的组织方式,那么更好的方法是定义一个哈希表,然后将其映射到cmdlet,如下所示:

$UserParams = @{
    Name = "$firstName $lastName"
    GivenName = $firstName
    Surname = $lastName 
    UserPrincipalName = "$firstName.lastname"
    EmailAddress = "$firstName.$lastName@<domain>"
    ChangePasswordAtLogon = 1 
    Enabled = 1 
    StreetAddress = "<info>" 
    Office = "<info>" 
    State = "<info>" 
    PostalCode = "<info>" 
    Country = "<info>" 
    Path = "<path>" 
}
New-ADUser @UserParams
$UserParams=@{
Name=“$firstName$lastName”
GivenName=$firstName
姓氏=$lastName
UserPrincipalName=“$firstName.lastname”
EmailAddress=“$firstName.$lastName@”
ChangePasswordAtLogon=1
已启用=1
StreetAddress=“”
Office=“”
State=“”
PostalCode=“”
Country=“”
Path=“”
}
新ADUser@UserParams

始终是答案+1这是一个很好的看待它的方式!非常感谢。在实现之后,我遇到了另一个关于CategoryInfo和FullyQualifiedErrorID的错误。你知道这意味着什么吗?
New-ADUser `
    -Name "$firstName $lastName" `
    -GivenName $firstName `
    -Surname $lastName `
    -UserPrincipalName = "$firstName.lastname" `
    -EmailAddress "$firstName.$lastName@<domain>" `
    -ChangePasswordAtLogon 1 `
    -Enabled 1 `
    -StreetAddress "<info>" `
    -Office "<info>" `
    -State "<info>" `
    -PostalCode "<info>" `
    -Country "<info>" `
    -Path "<path>" 
$UserParams = @{
    Name = "$firstName $lastName"
    GivenName = $firstName
    Surname = $lastName 
    UserPrincipalName = "$firstName.lastname"
    EmailAddress = "$firstName.$lastName@<domain>"
    ChangePasswordAtLogon = 1 
    Enabled = 1 
    StreetAddress = "<info>" 
    Office = "<info>" 
    State = "<info>" 
    PostalCode = "<info>" 
    Country = "<info>" 
    Path = "<path>" 
}
New-ADUser @UserParams