基于-Office的AD用户移动到OU

问题描述

我正在编写 Powershell 脚本,根据 CSV 的 $_.grade 字段中的数字将用户移动到正确的 OU。

当然,我们有 1-12 分的用户,他们在 Office 领域的成绩。在 AD 中,我们的 OU 下的学生只有小学、中学和高中。

我的目标是大量导入学生(我已经实现并且效果很好。)但随后还要根据他们的成绩移动他们。

主要 OU 是 00-04 年级
中OU是05-08年级
高 OU 是 09-12 年级

$Import.Add_Click( {
    Import-CSV -Path $filename | ForEach {
        Set-ADUser -Identity $_.user -Description $_.desc -Office $_.grade -replace @{UserType="Student"}
    
        $information.text = "Description and UserType have been set."

        Import-CSV -Path $filename | ForEach {Add-ADGroupMember -Identity "O365-StudentLicense" -Members $_.user}
        $information.text = "All imported accounts Now have a mailBox."
    }
})

这是我当前有效的代码。不过,并没有尝试让它真正按照我的意愿去做。

解决方法

您可以使用 Profile: Name: CompanyName1: CompanyName2: CompanyName3: JobTitle1: JobTitle2: JobTitle3: JobSummary1: JobSummary2: JobSummary3: 0 Profile_0 John Doe Firm A Firm B Firm C Capacity a Capacity b Capacity c Summary a Summary b Summary c 1 Profile_1 Jane Smith Firm X Firm Y Firm Z Capacity x Capacity y Capacity z Summary x Summary y Summary z 2 Profile_2 Mary Roe Firm P Firm Q NaN Capacity p Capacity q NaN Summary p Summary q NaN 通配符字符串比较运算符:

-like

Import-CSV -Path $filename | ForEach { $OU = if($_.grade -like '0[0-4]'){ 'Primary' } elseif($_.grade -like '0[5-8]'){ 'Middle' } elseif($_.grade -like '09' -or $_.grade -like '1[0-2]'){ 'High' } $OUPath = "OU=${OU} School,OU=Parent,DC=domain,DC=tld" Move-ADObject -Identity $_.user -TargetPath $OUPath } 表示“此范围内的任何字符”,因此 [0-4] 将匹配 0[0-4] 后跟 00123