Mehrere Nutzer auf einmal löschen 185

Mit folgendem Skript kann man Nutzer z.B. nach einem Merkmal in der E-Mailadresse suchen und diese dann auf einmal löschen.

Die Skripte benötigen das AzureAD Modul, welches vorher installiert werden muss:

Install-Module AzureAD
# Verbindung mit dem AzureAD Modul herstellen, wenn noch keine Verbindung besteht
try{
    Get-AzureADTenantDetail
}catch{
    Connect-AzureAD 
}

# Beispiel: hier werden alle Nutzer mit einem Merkmal in der E-Mailadresse gesucht
$tempArray = Get-AzureADUser -All $true | Where-Object {$_.UserPrincipalName -Match "10" }

# listet alle gefunden Nutzer auf
foreach($a in $tempArray){ 
    Write-Host $a.UserPrincipalName
}

# Abfrage ob wirklich alle aufgelisteten Nutzer nun gelöscht werden sollen
$deleteConfirm = Read-Host -Prompt "Wollen Sie wirklich alle aufgelisteten Nutzer löschen? (ja-nein)"

# wurde "ja" eingegeben werden nun die Nutzer gelöscht und gleich angezeigt.
if($deleteConfirm -contains "ja"){
    foreach ($i in $tempArray){
       Remove-AzureADUser -ObjectId $i.UserPrincipalName
       Write-Host "Nutzer " $i.UserPrincipalName " wurde gelöscht!"
    }
}else{
    Write-Host "Es wurden keine Nutzer gelöscht!"
}

Nutzer anhand einer Lizenz löschen

So kann man Nutzer anhand einer Lizenz sammeln und diese dann auf einmal löschen:

# Verbindung mit dem AzureAD Modul herstellen, wenn noch keine Verbindung besteht
try{
    Get-AzureADTenantDetail
}catch{
    Connect-AzureAD 
}

# Listet alle Lizenzen auf
Get-AzureAdSubscribedSku | Select-Object -Property SkuPartNumber,SkuId

# Sucht Nutzer nach der Lizenz, diese muss hier angegeben werden
$tempArray = Get-AzureADUser -All $true | Where-Object {($_.assignedLicenses).SkuId -contains "94763226-9b3c-4e75-a931-5c89701abe66"}

foreach($a in $tempArray){ 
    Write-Host $a.UserPrincipalName
}

# Abfrage ob wirklich alle aufgelisteten Nutzer nun gelöscht werden sollen
$deleteConfirm = Read-Host -Prompt "Wollen Sie wirklich alle aufgelisteten Nutzer löschen? (ja-nein)"

# wurde "ja" eingegeben werden nun die Nutzer gelöscht und gleich angezeigt.
if($deleteConfirm -contains "ja"){
    foreach ($i in $tempArray){
       Remove-AzureADUser -ObjectId $i.UserPrincipalName
       Write-Host "Nutzer " $i.UserPrincipalName " wurde gelöscht!"
    }
}else{
    Write-Host "Es wurden keine Nutzer gelöscht!"
}

RegEx Match

# sucht alle Nutzer die einen Klassennamen (1a, 10B, 5BR,...) in der E-Mailadresse haben
$tempArray = Get-AzureADUser -All $true | Where-Object {$_.UserPrincipalName -Match "^\w+[0-9]{1,2}[aAbBcCdDfFpPrR]{1,2}" }
# sucht alle externen Nutzer. Die ein EXT in der E-Mailadresse haben
$tempArray = Get-AzureADUser -All $true | Where-Object {$_.UserPrincipalName -Match "EXT" }

Links

unsere-schule.org

×

Mehrere Nutzer auf einmal löschen

Code: 185