【问题标题】:How can I turn the following CSV file into Active Directory Users如何将以下 CSV 文件转换为 Active Directory 用户
【发布时间】:2022-11-20 08:07:06
【问题描述】:

我希望创建一个脚本,但遇到了麻烦,从哪里开始??我想从给定的 CSV 文件创建 AD 用户,但我缺乏关于如何这样做的知识,这是我目前所拥有的,希望得到一些指导

firstname,lastname,office,phone,title,accountname
zak,A,NY,123-123-123-123,Teacher,Zak.Alex


Import-Module ActiveDirectory
$Domain="@abc.com"
$UserOu="OU=Users,DC=abc,DC=com" $NewUsersList=Import-CSV "D:\students.csv"
ForEach ($User in $NewUsersList)
{
$givenName=$User.givenName $sAMAccountName=$User.sAMAccountName $userPrincipalName=$User.sAMAccountName+$Domain $userPassword=$User.Password $expire=$null
New-ADUser -Name $givenName -GivenName $givenName -SamAccountName $sAMAccountName
}

【问题讨论】:

  • 不知道是不是发贴神器,但是那几行有多它们的(赋值)语句必须用 ; 分隔这些语句 - 或者,将它们分别放在单独的行中。如果这没有帮助,请澄清您的问题是什么,具体来说,您被困在哪里。请注意,您并不严格需要中间变量,您可以将 $User.givenName 等属性访问表达式直接传递给 New-ADUser。

标签: powershell active-directory


【解决方案1】:

首先,使用语句分隔符。

其次,注意实际的字段名称。 例如,如果您将“Given Name”作为“firstname”放入 CSV 中,那么您显然不能引用“givenName”属性,因为“given name”现在位于 $User.firstname 中。 Powershell 大多数时候不区分大小写,因此您无需注意“$user.firsTName”或“$User.Firstname”,因为它们都解析为相同的值。

第三,尝试查看 Get-Help New-AdUser -Parameter *。 检查参数要求(“强制”)以及它们需要什么样的管道输入。如果参数是“ValueByPropertyName”,您可以将 CSV 名称与参数名称匹配,并可以将 $User 对象通过管道传输到 New-AdUser,只为其余值添加参数。这使代码简短并且(希望)更易于阅读。

最后,首先坚持强制参数值。 其余的可以稍后再说。另外,尝试将 -WhatIf 添加到 New-AdUser;这将跳过实际更新 AD,您可以尝试一些东西,直到您准备好为止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 2011-08-16
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多