Если в описании AD есть определенный номер, добавьте его в указанную группу - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть сценарий, который я пытаюсь расширить для создания учетных записей студентов из CSV. Прекрасно работает.

Что я ищу:

  • Если описание имеет следующий номер: 01, 02, 03, 04, 05, 06 добавить к. Учащиеся K-6 член группы.
  • Если в описании указаны следующие номера: 07, 08, 09, 10, 11 или 12 добавьте к 6-12 студентов член группы.
  • В дополнение к перечисленной ниже группе All-Students .

Пример учетной записи: https://imgur.com/a/h9UDFfJ

Вот часть сценария, который я использую

 New-ADUser -Name "$Displayname" -DisplayName "$Displayname" -SamAccountName $SAM -UserPrincipalName $UPN -GivenName "$UserFirstname" -Surname "$UserLastname" -Description "$Description" -AccountPassword (ConvertTo-SecureString $Password -AsPlainText -Force) -Path "$OU" -ChangePasswordAtLogon $false –PasswordNeverExpires $true -Enabled $true -server AD1.schoolname.k12.or.us -HomeDirectory $HomeDirectory -HomeDrive $HomeDrive 

    Add-ADGroupMember -identity All-Students -members $SAM -server AD1.schoolname.k12.or.us

    Write-Host "AD Account $Displayname created!"  

    add-content $SuccessLog  "User $Displayname created Sucessfully."

    Write-Host -ForegroundColor Green $Displayname

1 Ответ

1 голос
/ 14 февраля 2020

Вы можете использовать следующее для сортировки ваших учеников:

$students = Get-ADUser -Filter "Description -like '*0*' -or Description -like '*1*'" -Properties Description
$studentsK6 = $students | Where Description -match '0[1-6]'
$students712 = $students | Where Description -match '0[7-9]|1[0-2]'

Add-ADGroupMember -Identity 'K-6 Students' -Members $studentsK6.SamAccountName
Add-ADGroupMember -Identity '6-12 Students' -Members $students712.SamAccountName

Объяснение:

-Filter используется, чтобы помочь сузить поиск пользователя, и обычно это быстрее, чем конвейерная обработка до Where-Object.

-Properties Description используется, чтобы гарантировать, что $students содержит свойство Description, чтобы мы могли сравнить его позже. По умолчанию объект ADUser не отображает свойство Description с выходным представлением по умолчанию.

0[1-6] соответствует любому двойному числу git, которое начинается с 0 и заканчивается 1,2 , 3,4,5 или 6.

0[7-9]|1[0-2] первые попытки сопоставить 0 с последующим 7,8 или 9. Если это не удастся, он попытается сопоставить 1 с последующим 0,1, или 2.

Вы можете сделать сопоставление более надежным, если точно знаете, где находится число в Description. Например, если он всегда находится в конце Description, вы можете использовать 0[1-6]$, где $ соответствует концу строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...