Jump to content

Outlook Adressen löschen


Direkt zur Lösung Gelöst von MurdocX,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo und Guten Morgen,

 

Umgebung: Exchange Online mit Office 365 Outlook Clients

 

Es wurde von einem Dienstleister für eine Mitarbeiter per CRM Online Sync eine falsche Kategorie mit  Demo Adressen an Mitarbeiter verteilt, welche nun jeder Mitarbeiter in Outlook hat.

 

Die Adressen serverseitig per Exchange Online Powershell zu löschen brachte nicht wirklich den Erfolg:

 

Get-Mailbox -Filter '(RecipientTypeDetails -eq "UserMailbox")' | search-mailbox -Searchquery 'kind:contacts AND subject:" -Falsche Kategorie"' -DeleteContent

 

 Nun der nächste Versuch über ein Script bei Outlook anzusetzen und hier pro User die Kategorie und Adressen zu löschen:

 

Früher habe ich das mal so gelöst per VBA als Makro - Aber das war 2004:

Private Sub Kontakte_löschen()
' Löschen von Kontakten einer Kategorie
   
Dim appOL As New Outlook.Application
Dim olns As NameSpace
Dim fld As MAPIFolder
Dim itms As Items
Dim itm As Variant

Set olns = appOL.GetNamespace("MAPI")
Set fld = olns.GetDefaultFolder(olFolderContacts)
Set itms = fld.Items
For Each itm In itms
    If itm.Categories = "Kategorie" Then
     itm.Delete
    End If
Next
End Sub

Ich will das aber nicht mehr als Makro per VBA machen . Hat jemand eine Idee wie das am besten gelöst werden kann ?

bearbeitet von WSUSPraxis
Geschrieben (bearbeitet)

Ich finde VBA nicht schlecht :-)  Alternativ, falls du etwas neueres brauchst, könntest du auf die Powershell switchen. Anzubieten hätte ich folgendes:

$outlook = New-Object -ComObject Outlook.Application
$namespace = $outlook.GetNamespace("MAPI")

# Entferne alle Kategorien
foreach($categorieItem in $namespace.categories)
{
	$namespace.Categories.Remove($categorieItem.Name)
}

 

Vermerk an mich: Nicht alles geschriebene gleich ausprobieren :lool:

 

bearbeitet von MurdocX
  • Haha 1
Geschrieben
vor 7 Stunden schrieb MurdocX:

Ich finde VBA nicht schlecht :-)  Alternativ, falls du etwas neueres brauchst, könntest du auf die Powershell switchen. Anzubieten hätte ich folgendes:


$outlook = New-Object -ComObject Outlook.Application
$namespace = $outlook.GetNamespace("MAPI")

# Entferne alle Kategorien
foreach($categorieItem in $namespace.categories)
{
	$namespace.Categories.Remove($categorieItem.Name)
}

 

Vermerk an mich: Nicht alles geschriebene gleich ausprobieren :lool:

 

 

Hallo und Guten Morgen,

 

Danke Dir ! Aber lösche ich nicht damit alle Kategorien ? Ich bekomme den Sprung nicht hin, nur die bestimmte zu suchen und zu löschen. 

 

Viele Grüße Arnd 

Geschrieben
vor 29 Minuten schrieb MurdocX:

Guten Morgen,


ja das stimmt. Momentan entfernst du damit alles. Zu lösen wäre das mit einem Array. Sind es bei allen die Gleichen? Wie viele wären das denn? 

Guten Morgen,

 

In der Falschen Kategorie, es ist nur eine, sind ca. 200 Testadresssen.

 

Die Falsche Kategorie muss raus und die 220 Testadressen.

 

Viele Grüße Arnd 

Geschrieben

Mehrere prüfst du gegen ein Array, wie in diesem Beispiel:

# Zu löschende Kategorien
[string[]]$zuLoeschendeKategorien = 'Test1','Test2','Test3'

# Abrufen des Namespaces
$outlook = New-Object -ComObject Outlook.Application
$namespace = $outlook.GetNamespace('MAPI')

# Verarbeite alle Kontakte
foreach($contactItem in $namespace.GetDefaultFolder(10).items)
{
    #$contactItem -> Das ist ein Kontakt
}

# Verarbeite alle Kategorien
foreach($categorieItem in $namespace.categories)
{
    if($zuLoeschendeKategorien -contains $categorieItem.Name)
    {
		# Lösche die betreffende Kategorie
        $namespace.Categories.Remove($categorieItem.Name)
    }
}

 

Ohne Beispiele fast unmöglich treffende Skripte zu schreiben. Wenn du Dir mein Beispiel ansiehst, dann kannst du mit der ForEach für Kontakte ein bisschen spielen. Hier fehlt nur noch die Abfrage nach dem Namen, dann kannst du den Kontakt löschen. Nimm Dir Visual Studio Code oder die PowershellISE zur Hand. Die Software wird dich gut unterstützen.

  • 3 Wochen später...
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...