Arhn - архитектура программирования

PowerShell находит количество файлов в домашнем каталоге пользователей

Я пытаюсь написать сценарий PowerShell, который извлекает количество файлов из домашнего каталога каждого пользователя в Active Directory. Я придумал следующий скрипт, но на самом деле он не получает количество файлов, мое количество файлов равно 0 для каждого пользователя. Что я пропустил в выражении? Я попробовал % вместо ? и я попытался добавить! перед $_ с неверными результатами.

Get-ADUser -Filter * -properties * -SearchBase "OU=Information Technology,`
OU=User Accounts,DC=net,DC=local" | ft name, homedirectory, homedrive,`
@{Name='Files'; Expression={(Get-ChildItem -Recurse -Force -ErrorAction Ignore`
| ?{$_.HomeDirectory}).count}} -A

  • Active Directory содержит только путь к домашнему каталогу, файлы находятся в файловой системе. вам нужно будет использовать Get-Child Items в папке $_.HomeDirectory и подсчитать их. 21.03.2018
  • ОП пытается это сделать. Попробуйте использовать Select-Object вместо Format-Table. Правило большого пальца состоит в том, чтобы фильтровать слева и форматировать справа. Как только вы получите правильную информацию из Select-Object, вы можете Format-Table все, что хотите. 21.03.2018
  • Хороший улов @randoms, который работает, за исключением тех, у кого нет домашнего каталога в их профиле, он дает мне файлы и папки, где я случайно нахожусь, когда запускаю скрипт. В противном случае это работает. 21.03.2018

Ответы:


1

Как указывает randoms , вам нужно указать $_.HomeDirectory в качестве аргумента для Get-ChildItem.

Чтобы избежать запуска Get-ChildItem, когда атрибут HomeDirectory пуст или не существует, вы можете поместить оператор if в выражение (разделить на несколько операторов для удобства чтения здесь):

$ITUsers = Get-ADUser -Filter * -properties homedirectory,homedrive -SearchBase "OU=Information Technology,OU=User Accounts,DC=net,DC=local" 
$ITUsers |Format-Table name, homedirectory, homedrive,@{Name='Files'; Expression={
  if(Test-Path $_.homedirectory){
    @(Get-ChildItem $_.homedirectory -Recurse -Force -ErrorAction Ignore).Count
  } 
  else {
    0
  }
} -AutoSize
21.03.2018
  • Я сделал спасибо, и это сработало. Ваш оператор IF помог устранить пользователей, у которых не было домашнего каталога. Спасибо! 21.03.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..