【问题标题】:Bulk Add AD through Powershell/CSV issue通过 Powershell/CSV 问题批量添加 AD
【发布时间】:2013-11-30 13:13:34
【问题描述】:

我正在尝试将用户批量添加到我的 Active Directory 中,但我在脚本开始时遇到了表达式错误。我根本不是脚本爱好者,所以我从一开始就没有想法。

$Users = Import-Csv ".\UsersFile.csv"
foreach ($User in $Users)
{
        -OrganizationalUnit $User.OU 
        -SamAccountName $User.UserName 
        -userPassword $User.Password 
        -GivenName $User.First 
        -Initials $USer.Initial 
        -sn $User.Last 
        -Displayname $User.DisplayName
        -Description $User.Description
        -Physicaldeliveryofficename $User.Office 
        -TelephoneNumber $User.Tel
        -Mail $User.mail 
        -streetaddress $User.Street 
        -postOfficeBox $User.Postbus
        -l $User.Location 
        -st $User.Provincie 
        -postalCode $User.Postcode 
        -c $User.Land 
        -deparment $User.Department
        -Company $User.Organisatie
        -Manager $User.Manager
        -Password $User.Password -ResetPasswordOnNextLogon $false 
}

错误日志。

一元运算符“-”后缺少表达式。 在 C:\Users\Administrator\Desktop\CreateUserBulk.ps1:4 char:10 + -


在尝试链接(来自 serv)并相应地编辑 CSV 和脚本后,现在出现了更多错误。

Import-Csv:无法打开文件“C:\Users\administrator\UsersFile.csv”。 在 C:\Users\administrator\Desktop\Untitled3.ps1:2 char:20 + $Users = Import-Csv

ConvertTo-SecureString:无法将参数绑定到参数“String”,因为它为空。 在 C:\Users\administrator\Desktop\Untitled3.ps1:11 char:195 + New-ADUser -Name $Detailedname -SamAccountName $SAM -UserPrincipalName $SAM -DisplayName $Detailedname -GivenName $user.firstname -Surname $user.name -AccountPassword (ConvertTo-SecureString


EDIT2:已修复,我将源链接更改为完整,现在可以使用了!

【问题讨论】:

  • 你的 csv 源文件中的分隔符是什么?
  • 添加,分隔符为分号
  • 第一个错误很简单:csv的路径不正确。第二个错误说:变量 $password 为空。
  • 很高兴我能帮上忙 ;) 这总是小事。

标签: powershell csv


【解决方案1】:

您没有在脚本中创建新的 AD 用户。所以-OrganizationalUnit 应该是未定义的并抛出错误,除非你先将它们声明为变量。

Import-Module ActiveDirectory 
$Users = Import-Csv -Delimiter ";" -Path ".\UsersFile.csv"  
foreach ($User in $Users)  
{  
    $FirstLetterFirstname = $User.firstname.substring(0,1)     

    New-ADUser -Name $User.firstname + " " + $User.name 
    -SamAccountName $FirstLetterFirstName + $User.name 
    //... and so on
} 

你可以先以$FirstletterFirstName的方式声明所有变量,然后在每个循环结束时执行New-ADUser命令,这样更便于以后阅读和修改。

重要的部分仍然存在:添加新用户是通过您缺少的 New-ADUser 命令执行的。您还可以将New-ADUser 添加到循环的顶部,如果代码中没有其他语法错误/拼写错误,这将使您的查询正常工作

//编辑:您可以在http://gallery.technet.microsoft.com/scriptcenter/ed20b349-9758-4c70-adc0-19c5acfcae45找到一个工作示例

以及针对 New-ADUser 的 TechNet 文章: http://technet.microsoft.com/en-us/library/ee617253.aspx

【讨论】:

  • 我尝试了示例脚本,并相应地更改了它和 CSV 以对其进行测试。但这给了我比以前更多的错误。编辑了我的第一篇文章...
  • 这很尴尬。如果我需要的话,我曾经处于与你相同的位置,并使用这个脚本(并且仍然使用它)将虚拟数据插入到我的 Sharepoint 开发机器中。我敢打赌,错误来自您尝试发出的错误 New-ADUser 命令
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-02
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 2014-05-17
相关资源
最近更新 更多