Categorie: Forefront Identity Manager

Enkel attribuut wissen in FIM met powershell

Een attribuut wissen in FIM gaat niet zoals je zou verwachten. Normaal gesproken zou je een Null waarde of iets dergelijks naar het attribuut schrijven. FIM accepteert dit echter niet. Het wissen gebeurt juist door geen waarde voor het attribuut op te geven en hem dan terug te schrijven.

Dit powershell script wist het attribuut ‘ProfileFolderPath’ voor personen waarvan de DisplayName begint met een k.

add-pssnapin FIMAutomation

$personlist = Export-FIMConfig -customconfig "/Person[starts-with(DisplayName,'k') and starts-with(ProfileFolderPath,'%')]" -OnlyBaseResources

If ($personlist -eq $null) { Write-Host "There are no people" ; exit }

foreach ($person in $personlist)
{
$memberlist=($person.ResourceManagementObject.ResourceManagementAttributes).Values

$importObject = New-Object Microsoft.ResourceManagement.Automation.ObjectModel.ImportObject
$importObject.ObjectType = "Person"
$importObject.TargetObjectIdentifier = $person.ResourceManagementObject.ObjectIdentifier
$importObject.SourceObjectIdentifier = $person.ResourceManagementObject.ObjectIdentifier
$importObject.State = 1

foreach ($member in $memberlist)
{

$importChange = New-Object Microsoft.ResourceManagement.Automation.ObjectModel.ImportChange
$importChange.Operation = [Microsoft.ResourceManagement.Automation.ObjectModel.ImportOperation]::Replace
$importChange.AttributeName = "ProfileFolderPath"
$importChange.FullyResolved = 1
$importChange.Locale = "Invariant"
$importObject.Changes += $importChange
}

$importObject | Import-FIMConfig
}
Translate ยป