Я новичок в PowerShell и AD, у меня есть небольшая задача, которую мне трудно выполнить. Может ли кто-нибудь помочь мне здесь?
Задача следующая:
В AD определены 3 группы, а именно
"CN=Technology Champion,OU=Exchange Distribution Lists,OU=Groups,DC=dpsnc,DC=local"
"CN=Media Contacts-ES,OU=School Groups,OU=Groups,DC=dpsnc,DC=local"
"CN=Media Contacts-SS,OU=School Groups,OU=Groups,DC=dpsnc,DC=local"
Что мне нужно сделать, так это среди всех пользователей, которые существуют в «Пользователи домена», мне нужно проверить, принадлежит ли пользователь к какой-либо из вышеупомянутых групп. Если ADUser принадлежит хотя бы к одной из вышеупомянутых групп, тогда проверьте его атрибут «Идентификатор отдела» (который будет иметь вид Department_id = «304-BEE») и на основе атрибута идентификатора отдела мне нужно переместить ADObject в соответствующую группу, чья имя содержит 'Department_id'
"CN=vBrick-ContentApprover.304-BEE.VC - Elementary,OU=Groups,OU=304-BEE,OU=VC - Elementary,DC=dpsnc,DC=local"
"CN=vBrick-ContentApprover.306-BMS.VC - Middle,OU=Groups,OU=306-BMS,OU=VC - Middle,DC=dpsnc,DC=local"
"CN=vBrick-ContentApprover.308-BUR.VC - Elementary,OU=Groups,OU=308-BUR,OU=VC - Elementary,DC=dpsnc,DC=local"
Например:
Если Пользователь является членом группы "CN=Media Contacts-ES,OU=School Groups,OU=Groups,DC=dpsnc,DC=local"
тогда мне нужно проверить его dept_id
атрибут, предположим dept_id
значение "304-BEE", то мне нужно переместить этот ADObject, чтобы он стал членом группы "CN=vBrick-ContentApprover.304-BEE.VC - Elementary,OU=Groups,OU=304-BEE,OU=VC - Elementary,DC=dpsnc,DC=local"
ПРИМЕЧАНИЕ: сценарий Powershell должен быть совместим с Windows Server 2003 R2 и Windows Server 2012.
Для начала я попытался переместить ADUser с помощью настраиваемого атрибута, используя следующий сценарий:
get-qaduser -sizelimit 0 -includedproperties <CustomAttribute> |% {
if ($_.<customattribute> -eq "somevalue"){add-qadgroupmember <somegroup> -member $_}
if ($_.<customattribute> -eq "someothervalue"){add-qadgroupmember <someothergroup> -member $_}
...
...
}
Я еще не придумал полного решения. Мне нужна помощь с полным сценарием
Этот сценарий будет работать для группы с именем Учитель (небольшая модификация этого сценария может автоматизировать его также для нескольких групп), где я использую атрибут 'title' ADUser и атрибут 'description' ADGroup, чтобы найти совпадение, если совпадение найдено, то ADUser добавляется в ADGroup.
$members = Get-ADGroupMember -Identity 'CN=Teacher,CN=Users,DC=DPSTest,DC=local' | %{Get-ADUser $_ -Properties title}
$groups = Get-ADGroup -filter 'name -like "*vBrick-ContentApprover*"' -Properties description
foreach ($member in $members) {
if($groups.description -contains $member.title)
{
Add-ADGroupMember (Get-ADGroup -filter 'description -eq $member.title') -Members $member
}
}
Любые предложения приветствуются. Спасибо вам всем!