Поиск папок, содержащих имя пользователя AD

#powershell

#powershell

Вопрос:

Я просто хочу просто получить все папки для всех пользователей в подразделении

Я пытался Get-ChildItem -path "\testfoldertest" -include $users

например: $user = john.doe, test.2

 $users = Get-ADUser -SearchBase "OU=Departed Users,OU=DISABLED,OU=To Decommission,DC=internal,DC=local" -Filter *

Get-childitem -path C: -include $users -recurse
  

Я также пытался экспортировать его в csv и импортировать, а затем запустить for-each loop

 eg: import-csv C:test.csv | foreach {get-childitem -path $path}
  

Я должен получить список всех элементов / папок со всеми именами пользователей в $user переменной

Комментарии:

1. если я не ошибаюсь в чтении ваших фрагментов кода, вы пытаетесь использовать весь объект в своем сравнении. $Users похоже, что это будет массив пользовательских объектов ad … это не простая строка. попробуйте заменить свою $Users ссылку на $Users.SamAccountName или любое другое свойство, содержащее имя, которое вы используете для своих пользовательских каталогов.

Ответ №1:

  $userlist = "johndoe", "testuser"

 foreach ($user in $userlist)

 {

 $searchfilter = (get-aduser $user | select Samaccountname).Samaccountname
 dir $searchfilter 

 }
  

Я считаю, что это должно сработать

Ответ №2:

Я думаю, что вы ищете что-то вроде этого:

 $rootFolder = '\testfoldertest'

# get a list of all user SamAccountNames in the given OU and wrap these names with asterikses to use as wildcards for '-Include'
$users = Get-ADUser -SearchBase "OU=Departed Users,OU=DISABLED,OU=To Decommission,DC=internal,DC=local" -Filter * | 
         Select-Object -ExpandProperty SamAccountName | ForEach-Object { "*$_*" }

# next search the rootfolder recursively for any directory where a the name includes a AD SamAccountNames
Get-ChildItem -Path $rootFolder -Directory -Include $users -Recurse | Select-Object -ExpandProperty FullName
  

Если вы подозреваете, что могут быть и скрытые папки, добавьте -Force переключатель к Get-ChildItem командлету.