温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Powershell 批量导入AD账户

发布时间:2020-06-21 23:11:05 来源:网络 阅读:1215 作者:mask8082 栏目:编程语言

它是一个单独的命令行,即导入一个 CSV 文件并使用其中的信息创建数十甚至数百个新的 Active Directory 用户:

 

Import-CSV 'C:\provision1.csv'|ForEach-Object {New-QADUser -organizationalUnit 'company.pri/Singers' -name($_.'First Name' + '.' + $_.'Last Name') -samAccountName $_.'Logon name' -city$_.city -title $_.'Job title' -department $_.department}

 

它确实是个很长的命令,但功能却强大得令人惊讶。首先是 Import-CSV(本机外壳 cmdlet),它只需读取一个 CSV 文件并返回对象。CSV 文件中的每一行都是一个单独的对象,并且 CSV 文件的列将成为对象的属性。在 Provision1.csv 文件中,列名类似于 "LogonName" 和 "First Name"—这一点非常有趣,因为列名不会直接映射到 Active Directory 用户属性。我发现,文件(比如此文件)通常都是使用听起来熟悉的列名,而非特定于 Active Directory 的名称。毕竟,您可能是从公司人事部的某个人那里收到的此文件,他们不太可能知道 Last Name 在 Active Directory 实际是 sn 属性。

 一旦将 CSV 文件中的所有数据导入并转换成对象,这些对象即会被通过管道传送到ForEach-Object cmdlet,它将针对每个对象执行代码块(刚才的单行式命令的花括号中的内容)。即,对 CSV 文件中的每一行均执行一次该脚本。在该脚本中,特殊的 $_ variable 为当前对象(或 CSV 文件的当前行)的引用。

 您可以看到,对于每个对象,我都执行了 New-QADUser cmdlet。它是 Quest 加载项中大约十几个 cmdlet 中的一个。名称 QADUser 值得关注一下。您可能已猜到,Q 代表 Quest。该命名约定旨在避免与 Microsoft Active Directory 团队将来可能推出的终极版New-ADUser cmdlet 发生冲突。这样,如果同时将这两个 cmdlet 加载到外壳中,您和外壳将能够更加轻松地区分它们。

 单行式命令的剩余部分包含 New-QADUser cmdlet 的参数。它首先指定organizationalUnit,即您希望在其中创建所有新用户的位置。接下来是 name 属性,我已将它设置为 First Name 列的内容、句点以及 Last Name 列的内容。

 最后一个有趣的事实是:city 参数实际会实际更改 Active Directory 中的 l 属性(或 Locality-Name)。cmdlet 还接受名为 l 的参数,所实现的功能完全相同。大多数情况下,引用 Active Directory 属性的参数可使用 Active Directory 用户和计算机工具的属性名称或文本标签。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI