new-aduser和import-csv无法正常工作

时间:2015-09-24 12:55:44

标签: powershell csv

我有以下脚本从CSV文件中导入数据。

    import-csv CSVfilelocation.csv | 
    new-aduser -name $_.Name -givenname $_.Firstname -surname $_.Lastname -samaccountname $_.samAccountName -userprincipalname ($_.samaccountname+"@dc.contoso.com") -manager $_.Manager -accountpassword (convertto-securestring Password -asplaintext -force) -path "Complete OU path" -Company $_.Company -Description $_.Description -enabled $false

CSV文件只包含两行数据,第一行包含列标题,下一行包含数据。

脚本不会抛出错误,但它也没有做任何事情。未创建用户,脚本输出>>签字喜欢它正在等待输入。

Executionpolicy设置为不受限制,脚本从本地运行。

为什么不起作用?

3 个答案:

答案 0 :(得分:0)

您很可能需要一个明确的foreach来多次致电new-aduser

import-csv CSVfilelocation.csv | % {
    new-aduser -name $_.Name -givenname $_.Firstname -surname $_.Lastname -samaccountname $_.samAccountName -userprincipalname ($_.samaccountname+"@dc.contoso.com") -manager $_.Manager -accountpassword (convertto-securestring Password -asplaintext -force) -path "Complete OU path" -Company $_.Company -Description $_.Description -enabled $false 
}

编辑:我错过了你的Powershell等待更多输入。这意味着你的行中有一个未闭合的括号或字符串,所以检查并修复。

答案 1 :(得分:0)

请试试这个:

使用PowerShell读取CSV文件并创建Active Directory用户帐户

http://blogs.technet.com/b/heyscriptingguy/archive/2011/12/22/use-powershell-to-read-a-csv-file-and-create-active-directory-user-accounts.aspx

*我认为最重要的部分是你需要通过列表中的每个项目。 *

“所以!”Lou突然出现“我们将您的整个文件放在Windows PowerShell变量$ UserList中。如果我们希望单步执行此列表,我们只需使用ForEach-Object cmdlet。我们有两种方法可以做到这一点。一种是将信息直接传递给ForEach-Object,如下所示:

$USERLIST | FOREACH-OBJECT { $_ }

“这会将列表中的每个条目都回显到屏幕上。”

“那么有趣的Windows PowerShell变量是什么?一个名字的下划线?“

“AHHA!很高兴你抓住了它!“吹嘘Boo。 “这是Windows PowerShell拥有的众多内置自动变量之一。它包含管道中的当前对象。当我们逐步浏览$ UserList中的信息时,它会保存该行的全部内容。或者我们可以这样做:

FOREACH ($Person in $UserList) { $ Person }

“在第二个实例中(使用$ UserList设置中的$ Person),变量$ Person替换了自动变量,它为我们提供了更具可读性的东西。两者都同样有效,但我更喜欢后者的可读性。因此,如果您想访问列表中的每个条目,我们会在CSV文件中引用列的名称,如下所示:“

FOREACH ($Person in $UserList) { 
    $Person.FirstName 
    $Person.LastName 
}

希望有所帮助!!

格伦

答案 2 :(得分:0)

发现问题,我有一个"我的路径变量太多了。我想我下次应该更好地校对我的代码。