#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
командлету.