Так как это школьное упражнение, я не думаю, что было бы хорошо дать вам рабочий фрагмент кода для простого копирования / вставки.
Тем не менее, я могу дать вам советы о том, где искать ..
CSV-файл содержит следующие поля: Name
, Surname
, Section
, где
- «Имя» - это имя пользователя
- 'SurName' - фамилия пользователя
- 'Раздел' - это (отображаемое) имя OU
Каждый пользователь в CSV должен быть перемещен в указанное подразделение, и для этого у модуля ActiveDirectory есть командлет Move-ADObject , поэтому вы выполняете итерацию по данным с помощью Foreach-Object {... }
Здесь нужно решить несколько вопросов.
Во-первых, командлет Move-ADObject
принимает параметр -Identity
, который может быть либо DistinghuishedName, либо GUID. Вы также можете передать ему объект ADUser.
В вашем CSV у вас есть имя пользователя (свойство AD GivenName
) и фамилия пользователя (свойство SurName
), поэтому вам нужно сначала получить пользователя object из AD, чтобы возможность использовать Move-ADObject.
Для этого в Интернете можно найти несколько ответов, оба из которых используют -Filter
, а также -LDAPFilter
параметры Get-ADUser .
Вторая проблема заключается в том, что Move-ADObject
нужен параметр -TargetPath
в виде DistinghuishedName , и поскольку ваш CSV-файл содержит только (отображаемое) имя целевого подразделения, вам необходимо получить это тоже первое.
Командлетом для этого является Get-ADOrganizationalUnit , где вы можете использовать параметр -Filter
, например, так: -Filter "Name -eq '$($_.Section)'"
Примечание: вы также можете использовать Get-ADObject
и фильтр для "ObjectClass -eq 'organizunit'" в качестве альтернативы для Get-ADOrganizationalUnit
, но это немного сложнее.
Если у вас есть оба объекта AD, вы можете использовать командлет Move-ADObject
, чтобы переместить пользователя в целевое подразделение, но всегда добавляйте переключатель -WhatIf
в команду, когда пробуете свой код. Только если вы удовлетворены результатами, показанными на консоли, вы можете отключить этот переключатель.
Пожалуйста, , а не , попытайтесь поместить все это в одну строку. Запишите это и добавьте комментарии к коду. Если у вас все получилось, вы можете захотеть немного ускорить процесс, упорядочив данные из CSV с помощью Group-Object
Надеюсь, это поможет