【问题标题】:Importing Users into Active Directory将用户导入 Active Directory
【发布时间】:2021-02-24 04:56:48
【问题描述】:

我正在尝试创建一个脚本,该脚本将使用以下 CSV 文件将一组用户导入 AD。我需要将用户创建到基于部门的自定义 OU 中,如果 OU 不存在,我需要创建 OU 的脚本然后将用户放入相应的 OU 中。

CSV 的内容:

firstname,lastname,dept
Albina,Crinklaw,FRESHMAN
Alona,Harbin,FRESHMAN
Athena,Canada,FRESHMAN
Ronnie,Castagna,FRESHMAN
Teofila,Lambros,JUNIORS
Lashonda,Meals,JUNIORS
Serena,Stricker,JUNIORS
Jeraldine,Lonergan,JUNIORS
Angelica,Cordle,JUNIORS
Risa,Shutt,JUNIORS
Tamara,Rough,JUNIORS
Jefferey,Michel,JUNIORS
Candie,Elderkin,JUNIORS
Nguyet,Mcdonagh,JUNIORS
Delbert,Hetzler,JUNIORS
Tammi,Dietrich,JUNIORS
Nam,Gendreau,JUNIORS
Sherice,Shotwell,JUNIORS
Un,Simms,JUNIORS
Ettie,Stitt,SENIORS
Peg,Huber,SENIORS
Violet,Valerio,SENIORS
Remona,Stonerock,SENIORS
Ian,Grizzle,SENIORS
Jeremiah,Chock,SENIORS
Kenya,Carasco,SENIORS
Olinda,Stills,SENIORS
Kristie,Kasten,SENIORS
Jude,Roesner,SENIORS
Bret,Erwin,SENIORS
Emily,Mckay,SENIORS
Cecila,Scheel,SENIORS
Wiley,Dobbin,SENIORS
Terrilyn,Westrick,SENIORS
Thao,Kissell,SOPHOMORES
Nichelle,Edelman,SOPHOMORES
Rubin,Brocato,SOPHOMORES
Mel,Perlmutter,SOPHOMORES
Hellen,Mayr,SOPHOMORES
Omega,Maskell,SOPHOMORES
Chelsea,Orcutt,SOPHOMORES
Janyce,Madigan,SOPHOMORES
Krysta,Delagarza,SOPHOMORES
Alejandro,Kish,SOPHOMORES
Pura,Morant,SOPHOMORES

脚本:

$UserList = Import-Csv -Path 'C:\users\administrator\Desktop\its3410Users.csv' 

foreach ($User in $UserList) {

     $Attributes = @{

        Enabled = $true
        ChangePasswordAtLogon = $true
        Path = @{Name="Path";Expression={Get-ADOrganizationalUnit -Filter "name -eq '$($_.department)'"}}

        Name = "$($User.Firstname) $($User.lastname)"
        UserPrincipalName = "$($User.firstname).$($User.lastname)@its3410.net"
        SamAccountName = "$($User.firstname).$($User.lastname)"

        GivenName = $User.firstname
        Surname = $User.lastname

   
        Department = $User.dept
        AccountPassword = "Ch@nge123Me!" | ConvertTo-SecureString -AsPlainText -Force}

     }

    New-ADUser @Attributes

【问题讨论】:

    标签: powershell active-directory


    【解决方案1】:

    您的 CSV 显示第三列名为 dept,但您的代码使用 department 此外,由于您使用foreach ($User in $UserList) {..} 而不是$UserList | ForEach-Object {..} 循环,因此循环内部没有$_ 自动变量,您需要使用$User.dept

    您的代码已修改:

    $UserList = Import-Csv -Path 'C:\users\administrator\Desktop\its3410Users.csv'
    
    foreach ($User in $UserList) {
        $OU = Get-ADOrganizationalUnit -Filter "name -eq '$($User.dept)'" -ErrorAction SilentlyContinue
        if (!$OU) {
            # create the new OU (set the Path to the DistinguishedName of the root path for users/departments)
            $OU = New-ADOrganizationalUnit -Name $User.dept -Path "DC=ITS3410,DC=NET" -PassThru
        }  
        $Attributes = @{
            Enabled               = $true
            ChangePasswordAtLogon = $true
            Path                  = $OU.DistinguishedName
            Name                  = '{0} {1}' -f $User.firstname, $User.lastname
            UserPrincipalName     = '{0}.{1}@its3410.net' -f $User.firstname, $User.lastname
            SamAccountName        = '{0}.{1}' -f $User.firstname, $User.lastname
            GivenName             = $User.firstname
            Surname               = $User.lastname
            Department            = $User.dept
            AccountPassword       = "Ch@nge123Me!" | ConvertTo-SecureString -AsPlainText -Force
        }
    
        New-ADUser @Attributes
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2022-10-25
      相关资源
      最近更新 更多