Экспорт-CSV MIM FIM PowerShell выпуск - PullRequest
0 голосов
/ 16 мая 2018

Меня попросили получить список .csv со всеми пользователями, которые зарегистрировались на портале FIM .Я занимался поиском, пока не наткнулся на этот скрипт:

set-variable -name URI -value "http://localhost:5725/resourcemanagementservice' " -option constant 
set-variable -name CSV -value "RegistredResetPassUsers.csv" -option constant

clear 

If(@(Get-PSSnapin | Where-Object {$_.Name -eq "FIMAutomation"} ).count -eq 0) {Add-PSSnapin FIMAutomation} 

$WFDFilter = "/WorkflowDefinition[DisplayName='Password Reset AuthN Workflow']" 
$curObjectWFD = export-fimconfig -uri $URI –onlyBaseResources -customconfig ($WFDFilter) -ErrorVariable Err -ErrorAction SilentlyContinue 
$WFDObjectID = (($curObjectWFD.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "ObjectID"}).value).split(":")[2]
$Filter = "/Person[AuthNWFRegistered = '$WFDObjectID']"
$curObject = export-fimconfig -uri $URI –onlyBaseResources -customconfig ($Filter) -ErrorVariable Err -ErrorAction SilentlyContinue 

[array]$users = $null 
foreach($Object in $curObject) 
{
     $ResetPass = New-Object PSObject
     $UserDisplayName = (($Object.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "DisplayName"}).Value)
     $ResetPass | Add-Member NoteProperty "DisplayName" $UserDisplayName
     $Users += $ResetPass
}

$users | export-csv -path $CSV 

Сценарий работает без ошибок, за исключением того, что фактический список, который он экспортирует только , содержит мое отображаемое имя .Я пытался выяснить, почему он не экспортирует полный список всех пользователей и показывает только мое имя, но я не смог выяснить это, поэтому мне было интересно, может ли кто-нибудь помочь мне пролить свет на этовыпуск.

Еще раз спасибо за любую помощь, которую вы, ребята, можете предоставить!

Ответы [ 3 ]

0 голосов
/ 21 мая 2018

Попробуйте заменить:

[array]$users = $null

С:

$users = @()
0 голосов
/ 24 июня 2019

Вероятно, это связано с настройкой разрешений.

По умолчанию у вас есть разрешения для просмотра ваших собственных атрибутов.

Вероятно, существует некоторая настройка правила политики управления, поэтому учетные записи пользователей в определенном набореможет прочитать атрибут AuthNWFRegistered других пользователей для поддержки устранения неполадок и поддержки клиентов.

Вам потребуется использовать один из вариантов:

  • Добавить учетную запись, используемую для этого сценария, в наборкоторый уже делегирует это разрешение на чтение

или

  • Создайте отдельный MPR для этого конкретного отчета (это то, что я бы порекомендовал), который предоставляет разрешения для конкретной учетной записи пользователячитать атрибут AuthNWFRegistered.

Также убедитесь, что действительно существует только один рабочий процесс, связанный с регистрацией пользователя.Если их несколько, вам нужно настроить таргетинг на Set со всеми зарегистрированными рабочими процессами в вашем фильтре XPath, а не на конкретное имя рабочего процесса.

На отдельном примечании - в то время как FIMAutomation иногда необходимо использовать оснастку для использования со стандартными инструментами, дляВаша индивидуальная работа, я настоятельно рекомендую использовать модуль LithnetRMA компании Литнет (https://github.com/lithnet/resourcemanagement-powershell).

). С ним вы будете работать намного эффективнее, и большинство операций будут выполняться без использования стандартного кода FIMAutomation.Это будет ваш код с использованием LithnetRMA.

Set-ResourceManagementClient -BaseAddress 'http://localhost:5725/resourcemanagementservice'
$scope = Search-Resources -XPath "/Person[AuthNWFRegistered = /WorkflowDefinition[DisplayName='Password Reset AuthN Workflow']]" -ExpectedObjectType Person
$scope | select DisplayName | Export-Csv 'RegistredResetPassUsers.csv' -Encoding Unicode
0 голосов
/ 20 мая 2018

Нет опыта работы с этим оснасткой / продуктом, но, учитывая, что код в основном работает (он возвращает ваш объект), это может быть проблемой с разрешениями.Возможно, вы не сможете прочитать другие пользовательские объекты, поэтому они вам не доступны.

Если вы можете просматривать их в какой-либо консоли UI, проверьте наличие отдельных разрешений, связанных с действиями API.и убедитесь, что у вас есть доступ таким образом.Другой способ действий может состоять в том, чтобы построчно запускать код и видеть, какие результаты вы получаете от каждой строки, чтобы убедиться, что вы получите то, что ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...