Вы можете использовать следующее для сортировки ваших учеников:
$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]$
, где $
соответствует концу строки.