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

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
Link zu diesem Kommentar

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
Link zu diesem Kommentar
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 

Link zu diesem Kommentar
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 

Link zu diesem Kommentar

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.

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...