Server Powershell新ADUser发行版

Server Powershell新ADUser发行版,server,windows-server-2012,powershell-4.0,Server,Windows Server 2012,Powershell 4.0,} 这是我目前的代码。我的CSV有所有正确的标题,它们也是有序的 当我运行这个程序时,我得到的错误是(对每个用户都会发生,没有任何内容输入到广告用户和计算机中: 因此,我的问题是,为什么会出现此错误?如果您希望看到我的CSV,请告诉我!以下是您命令的问题子项: $userarray = import-csv "userlist.csv" foreach ($user in $userarray){ $login = $user.username $gname = $user.

}

这是我目前的代码。我的CSV有所有正确的标题,它们也是有序的

当我运行这个程序时,我得到的错误是(对每个用户都会发生,没有任何内容输入到广告用户和计算机中:


因此,我的问题是,为什么会出现此错误?如果您希望看到我的CSV,请告诉我!

以下是您命令的问题子项:

$userarray = import-csv "userlist.csv"

foreach ($user in $userarray){
    $login = $user.username
    $gname = $user.firstname
    $sname = $user.lastname
    $fname = $gname + " " + $sname
    $passw = ConvertTo-SecureString $user.password -AsPlainText -Force
    $email = $user.email
    $dptmt = $user.department
    $hodir = "\\BYFS01\Home$\$login"
    $madou = "OU=$dptmt,OU=Staff,DC=breezeyob.v11a,DC=.org"

    New-ADUser -SamAccountName $login -UserPrincipalName $email     -Name     $fname -GivenName $gname -Surname $sname -EmailAddress $email     -AccountPassword $passw -Enabled 1 -Path $madou -HomeDrive "Z:"     -HomeDirectory $hodir
该命令的帮助表明该值需要为常量。问题来自$email对另一个变量$user的依赖性。变量$user反过来又依赖于另一个变量$userarray。变量中的许多变量是不稳定的(从PowerShell的角度来看)

在特设哈希表中初始化$email变量之前,请尝试获得如下值:

$email = $user.email
$madou = "OU=$dptmt,OU=Staff,DC=breezeyob.v11a,DC=.org"
请注意,您不必像我的示例那样明确说明它。它也可以是这样的:

$email = 'email@company.org'
这里的关键是$anothervariable指向如下值

$email = $anotherVariable
而不是像这样

'email@company.org' 
考虑以下几点:

"email@$DontKnowThisYetVariable.org"
此语句很可能不会引起任何问题,因为变量“$user.username”指向CSV中的某个字符串常量,如“Calvin”或“Hobbes”

我相信,如果您的变量指向常量值,您的命令将顺利运行。我在创建一个快速脏的Active Directory域时复制了相同的错误。我在我的超级新AD域中运行了以下操作,并且成功了:

$login = $user.username

我认为这只是$madou变量的语法: 据我所知,DifferencedName属性不允许在其字符串中使用点(.)。因此,我认为:

$userarray = Import-Csv "userlist.csv"

$DefinedVariable = "Users"

foreach ($user in $userarray){

$login = $user.username
$gname = $user.firstname
$sname = $user.lastname
$fname = $gname + " " + $sname
$passw = ConvertTo-SecureString $user.password -AsPlainText -Force
$email = $user.email
$dptmt =  $DefinedVariable

$madou = "CN=$dptmt,DC=contoso,DC=com"

New-ADUser -SamAccountName $login -UserPrincipalName $email -Name $fname  -GivenName $gname `
-Surname $sname -EmailAddress $email -AccountPassword $passw -Enabled $true `
-Path $madou -HomeDrive "Z:" -HomeDirectory $hodir
}
应该是:

$madou = "OU=$dptmt,OU=Staff,DC=breezeyob.v11a,DC=.org"
$madou = "OU=$dptmt,OU=Staff,DC=breezeyob,DC=v11a,DC=org"