Bereinigen der Vorschlagsliste im Outlook um die internen (Exchange) Empfänger

Hallo!

bei einer Migration zu Exchange/Outlook mit einer Relaydomain hat man das Problem dass einige Clients schon die umgezogenen Empfänger noch in der Vorschlagsliste haben.
Das hat zur Folge dass die Bestandspostfächer im Exchange dem Neuzugang (auch im Exchange) nicht mailen kann.

Als Lösung während der Migration habe ich ein Bereinigungsskript im Logonskript hinterlegt.
Wichtig hierfür ist eine GPO die das unverifizierte Ausführen von Powershellskripten zuläßt.

=== Schnipp ps1 Skript
$outlook = new-object -com outlook.application;
$Namespace = $outlook.GetNamespace(“MAPI”);
$fl = $Namespace.Folders.GetFirst();
$fl2 = $fl.Folders.Item(‘Vorgeschlagene Kontakte’);

$items = $fl2.Items;

for ($i = $items.Count; $i -gt 0; $i–) {
$a = $items.Item($i).Email1Address;
$d = $a.ToLower().Contains(“{domain}”)
if ($d) {
$a
$d
$items.Item($i).Delete()
}
}

$outlook = new-object -com outlook.application;
$Namespace = $outlook.GetNamespace(“MAPI”);
$fl = $Namespace.Folders.GetLast();
$fl2 = $fl.Folders.Item(‘Vorgeschlagene Kontakte’);

$items = $fl2.Items;

for ($i = $items.Count; $i -gt 0; $i–) {
$a = $items.Item($i).Email1Address;
$d = $a.ToLower().Contains(“{domain}”)
if ($d) {
$a
$d
$items.Item($i).Delete()
}
}
===== Schnapp

Zugriff auf Outlook Webaccess

Aufgabenstellung:

  1. Erstellen einer Mail mittels EWS (Outlook Webaccess SOAP WSDL API)
  2. Erstellen eines Anhanges an die Mail.
  3. Start des Webaccess mit dieser neuen Mail.

Weitere Infos:

Genutzt wurde das “Framework” http://code.google.com/p/php-ews/

Einfach die Sourcen runterladen und includieren.

Eine sehr gute Beschreibung für Methoden fand ich unter:

http://msdn.microsoft.com/en-us/library/bb409286%28v=exchg.140%29.aspx

Beispielcode

<?php

include “php-ews/ExchangeWebServices.php”;
include “php-ews/EWS_Exception.php”;
include “php-ews/EWSType.php”;
include “php-ews/NTLMSoapClient.php”;
include “php-ews/NTLMStream.php”;

foreach ( glob( “php-ews/EWSType/*.php” ) as $filename ) {
include $filename ;
}
include “php-ews/NTLMSoapClient/Exchange.php”;

$ews = new ExchangeWebServices(‘exchange.domain.local’, ‘domain\\user’, ‘pw’,'Exchange2010′);

// Mail erstellen
$request->MessageDisposition = ‘SaveOnly’;
$request->SavedItemFolderId->DistinguishedFolderId->Id = ‘drafts’;
$request->Items->Message->ItemClass = ‘IPM.Note’;
$request->Items->Message->Subject = ”;

$request->Items->Message->ToRecipients->Mailbox->EmailAddress = ‘ews@elis.de’;
//$request->Items->Message->Categories->String = $category;

$request->Items->Message->Body->BodyType = ‘HTML’;
$request->Items->Message->Body->_ = ‘PDF Mail’;

$response = $ews->CreateItem($request);

print_r($response);

echo $response->ResponseMessages->CreateItemResponseMessage->Items->Message->ItemId->Id.”\n”;
echo $response->ResponseMessages->CreateItemResponseMessage->Items->Message->ItemId->ChangeKey.”\n”;

// Anhang hinzufügen
$reqatt->ParentItemId->Id = $response->ResponseMessages->CreateItemResponseMessage->Items->Message->ItemId->Id;
$reqatt->ParentItemId->ChangeKey = $response->ResponseMessages->CreateItemResponseMessage->Items->Message->ItemId->ChangeKey;
$reqatt->Attachments->FileAttachment->Name=’test.pdf’;
$reqatt->Attachments->FileAttachment->IsInline = true;
$reqatt->Attachments->FileAttachment->Content=file_get_contents(‘c:\temp\test.pdf’);
$resatt = $ews->CreateAttachment($reqatt);
print_r($resatt);

// OWA ID Auslesen
$reqews->DestinationFormat=’OwaId’;
$reqews->SourceIds->AlternateId->Format=’EwsId’;
$reqews->SourceIds->AlternateId->Id=$response->ResponseMessages->CreateItemResponseMessage->Items->Message->ItemId->Id;
$reqews->SourceIds->AlternateId->Mailbox=’user@domain.local’;
$resatt = $ews->ConvertId($reqews);
print_r($resatt);

// IE starten
shell_exec(‘start iexplore “https://exchange.domain.local/owa/?ae=Item&a=Open&t=IPM.Note&id=’.$resatt->ResponseMessages->ConvertIdResponseMessage->AlternateId->Id.’&s=Draft”‘);

?>

Wechsel von “Mythtv” zu “Team MediaProjekt”.

Vor ein paar Wochen beschwerte sich meine Frau, dass sie ganz gerne mal wieder LiveTV schauen möchte.

Hintergrund:
o 1. Linuxserver mit 2 SAT Receiver Karten und Mythtv-Backend
o 1. Windowsfrondend mit XBMC und Mythbox

Diverse Versuche mit einem Windows Mythfrontend auf Windows scheiterten und die eine andere Art den LiveStream zuzugreifen schienen mehr als nur Problematisch.

Deswegen machte ich mich auf die Suche nach einer anderen Lösung und entdeckte das Parallelprojekt „Team Mediaprojekt“.

Die Installation in einer VMWare scheiterte an einer neuen Receiver Karte und dessen Treiberprobleme (Heavy Load).

Nach einer einfachen Installionsroutine und ein gefolgten Sendersuchlaufes lief es schon direkt unter Windows. Erst lahmte aber der Client im Wohnzimmer. Nach den Updateinstallationen auf dem Server lief dann aber alles reibungslos.
Der Client ließ sich mit ein paar Klicks wunderbar konfigurieren die Programmierung der Tasten auf der Fernbedienung waren sogar schon hinterlegt (MCE Remote)

  1. Server
    Dell Server mit 2 PCI Sat Receiver Karten (eine Karte mit PCI Bridge)
    Windows 7 64Bit
    1x Xeon 2,4Ghz, 4 GB Ram, 2 TB im Raid 5
    CPU langweilt sich, RAM ein wenig genutzt von der DB
  2. Switch
    GBit Netzwerk
  3. Wohnen
    Dell Inspiron PC mit Monitor und Windows
    Windows 7 Home mit Windows Media USB Fernbedienung
    Läuft Flüssig
  4. Steuern
    Subnotebook mit Windows 7 mit dem Frontend als Programmzeitschrift und Programmierung.
    Arbeitsgeschwindigkeit okay, TV quasi nicht nutzbar
  5. Laptop
    Mit dem Laptop und Windows 7 über WLAN war auch ein Zugriff mittels des Clients ohne Probleme

Fazit nach einer Woche: Eine Echt nutzbare Lösung mit vielen Plugins die ich aber noch nicht getestet habe. Die Lösung scheint für mich sogar Businesstauglich.