Создание свойств InputObject

Мне нужна помощь в создании хеш-таблицы пользователей для использования с Get-MGBetaUser.

На сайте Microsoft (https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.users/get-mguser?view=graph-powershell-1.0) вам дадут параметр он ищет (UserID), но я не могу найти другие статьи в Интернете с точным вариантом использования, таким как эта.

В настоящее время я могу получить один объект в хеше и получить к нему прямой доступ, запросив индекс

    $Users['UserID'] = @{
    UserID = "<IDOfUser>"
    }

Get-MGBetaUser -InputObject $Users.UserID

Если я передам этот же хеш в Get-MGBetaUser, я получу ошибку

Line |
   6 |  $Users | Get-MGBetaUser
     |  ~~~~~~~~~~~~~~~~~~~~~~~
     | Resource 'System.Collections.Hashtable' does not exist or one of its queried reference-property objects
     | are not present.

Хэш будет иметь ок. 15-20 тысяч идентификаторов пользователей, которые необходимо будет добавить, и они будут поступать из CSV.

Похоже, что Microsoft примет ввод Pipeline только с помощью этого метода с хэшем. Все остальное, что я всегда делал, позволит передать в него массив идентификаторов.

Заранее спасибо за любую помощь

🤔 А знаете ли вы, что...
PowerShell обеспечивает возможность создания пользовательских интерфейсов командной строки.


1
77
1

Ответ:

Решено

Спасибо всем за ваши ответы, поскольку кажется, что ответ заключается в том, что вы не можете предоставить Graph SDK массив или хэш пользователей, как изначально предполагалось, я решил пойти другим путем. Пример, который я приводил, заключался в том, чтобы выделить x заданий на основе количества хэшей/файлов, которые у меня были, чтобы я мог ограничить объем каждого задания и создать реалистичные временные рамки для извлечения данных.

Я решил создать хэш-таблицу фильтров, которая будет ограничивать доступность каждого задания. В моем случае у нас более 140 тысяч студентов, поэтому я создал фильтр для каждой фамилии, оканчивающейся на A, B, C... Разделив их на 27 заданий от A до Z, я могу получить полные результаты в течение 30 минут. В моем тестировании попытка провести одно большое количество студентов заняло несколько часов. Причина этого заключается в том, что я также предпочитаю получать информацию о лицензировании вместе с действиями входа (для чего требуется указать GUID, если вы использовали для каждого)

Разрешение Graph использовать фильтр позволяет SDK получать данные пакетами, а не наоборот.

Если кто-то имеет более глубокое представление об этом или видит лучший способ (кроме For-Each), не стесняйтесь, дайте мне знать, в противном случае я отмечаю это как закрытое!