Keyfactor Days 2027 – Nehmen Sie an der „Trust Security Conference“ in San Diego teil Jetzt anmelden!

Verwenden von PowerShell zum Löschen von Objekten aus dem FIM-Dienst

Sami VanVliet Sami VanVliet Principal Product Manager

Das Löschen einer großen Anzahl von Objekten aus dem FIM-Dienst kann auf verschiedene Weise erfolgen:

  1. Erstellen Sie eine benutzerdefinierte Workflow-Aktivität zum Löschen des Objekts, die bei einem festgelegten Übergang MPR ausgelöst wird.
  2. Konfigurieren Sie eine MA als maßgebend für das Löschen von Objekten, und heben Sie dann die Verbindung der Objekte mit der FIM MA auf.
  3. PowerShell-Skripte.

Das PowerShell-Skript schien uns der am wenigsten eingreifende Ansatz zu sein, da es keine Änderung der Konfiguration der Arbeitsabläufe oder der Synchronisierungs-Engine erforderte.

Bei der Aufzählung einer großen Anzahl von Objekten über PowerShell kann das Skript eine Zeitüberschreitung verursachen - oft erst nach einigen Stunden Laufzeit - und Sie können wieder an den Ausgangspunkt zurückkehren.

Um dies zu vermeiden, haben wir folgendes geschrieben, das mehrere unabhängige Fenster zur Ausführung des Skripts startet, die nach dem Anfangsbuchstaben des Nachnamens gefiltert werden.

cmd /c start powershell -NoExit -Command {$Host.UI.RawUI.WindowTitle = “Delete User – A”; .\DeleteUser.ps1 ‘A’}
cmd /c start powershell -NoExit -Command {$Host.UI.RawUI.WindowTitle = “Delete User – B”; .\DeleteUser.ps1 ‘B’}
cmd /c start powershell -NoExit -Command {$Host.UI.RawUI.WindowTitle = “Delete User – C”; .\DeleteUser.ps1 ‘C’}
cmd /c start powershell -NoExit -Command {$Host.UI.RawUI.WindowTitle = “Delete User – D”; .\DeleteUser.ps1 ‘D’}

Usw. zu Z.

Das Löschskript erzeugt für jedes gelöschte Objekt eine Anfrage an den FIM-Dienst, so dass eine große Warteschlange entsteht, wenn 26 Skripte gleichzeitig ausgeführt werden. Um die Auswirkungen auf die Leistung des FIM-Dienstes so gering wie möglich zu halten, haben wir etwa 5-8 Buchstaben gleichzeitig ausgeführt.

Hier ist der Code zum Löschen des Benutzers.

param (

[string]$Buchstabe = $(throw "Geben Sie den letzten Buchstaben an"))

#------------------------------------

Set-Variable -Name URI -Wert "https://localhost:5725/resourcemanagementservice" -Option Konstante

#------------------------------------

Funktion DeletePerson

{

Param($ObjectId)

Ende

{

$ImportObject = New-Object Microsoft.ResourceManagement.Automation.ObjectModel.ImportObject

$ImportObject.ObjectType = "Person"

$ImportObject.TargetObjectIdentifier = $ObjectId

$ImportObject.SourceObjectIdentifier = $ObjectId

$ImportObject.State = 2

$ImportObject | Import-FIMConfig -uri $URI -ErrorVariable Err -ErrorAction SilentlyContinue

If($Err){Werfen Sie $Err}

}

}

#------------------------------------

If(@(get-pssnapin | where-object {$_.Name -eq "FIMAutomation"} ).count -eq 0) {add-pssnapin FIMAutomation}

#clear-host

$ExportObject = Export-FIMConfig -uri $URI `

-onlyBaseResources `

-customconfig "(/Person[starts-with(LastName, '$Letter')])" `

-ErrorVariable Err `

-ErrorAction StummFortsetzen

If($Err){Werfen Sie $Err}

If($ExportObject -eq $null) {throw “L:There are no persons in your environment”}

$iMax = @($ExportObject).Count

$i = 1

$ExportObject | ForEach{

$pctComp = ([int]($i/$iMax * 100))

Write-Progress -activity "Löschen als" `

-status "Bitte warten" -percentcomplete $pctComp `

-currentoperation "$i von $iMax Personen verarbeitet"

$ObjectId = (($_.ResourceManagementObject.ObjectIdentifier).split(":"))[2]

DeletePerson -ObjectId $ObjectId

$i++

}

Write-Host "`nBefehl erfolgreich abgeschlossen`n"

#------------------------------------

Falle

{

$exMessage = $_.Exception.Message

If($exMessage.StartsWith("L:"))

{write-host "`n" $exMessage.substring(2) "`n" -foregroundcolor white -backgroundcolor darkblue}

Else {write-host “`nError: ” $exMessage “`n” -foregroundcolor white -backgroundcolor darkred}

Ausfahrt 1

}

#

Die Quelle abonnieren

Stay secure with Keyfactor's monthly newsletter, packed with expert insights and practical steps for quantum-readiness.

Lesen Sie weiter

Keyfactor Command 10
Produkt

Was ist neu in Keyfactor Command 10

Mehr lesen
IBM Keyfactor modernization
Trends in der Industrie

6 brutale Wahrheiten, denen sich jede Führungskraft in Bezug auf Unternehmensverschlüsselung stellen muss

Mehr lesen
Laptop-CPU
Zertifikat-Management

Ein Leitfaden zur PKI-Verschlüsselung: 9 Arten von Zertifikaten werden erklärt

Mehr lesen