Jump to content

Powershell EWS / Kontakte


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich sehe glaube ich gerade den Wald vor lauter Bäumen nicht, vielleicht könnt ihr mir sagen, warum im folgenden Script, nur die ersten 1.000 Elemente gefunden werden

# Script um die Kontakte einer Mailbox zu exportieren
# Vers. 0.5
# 

### Variablen zu befüllen

# Welche Mailbox soll ausgelesen werden
$mbxName = ''

# Wohin soll die Ausgabe geschrieben werden
$outtemp = ''
$out = ''

# Wo befinden sich die Web Services
$dllPath = "c:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"

# Initialisierung Export
$Export ="Surname;GivenName;CompanyName;Street;City;PostalCode;CountryOrRegion;Fax;Phone;Mobile;EmailAddresses`r`n"



# Script / Auslesen der Kontakte
# 
[Int] $intCount = 0
[Void] [Reflection.Assembly]::LoadFile($dllPath)
$Service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2)
$Service.AutodiscoverUrl($mbxName, {$True})
$RootFolderID = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::contacts, $mbxName)
$RootFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($Service, $RootFolderID)
$view = New-Object Microsoft.Exchange.WebServices.Data.ItemView(100000,0)
$findResults = $Service.FindItems($rootFolderid,$view)

 
foreach($item in $findResults)
 
  {
  $Export +=  "$($item.Surname);$($item.GivenName);$($item.CompanyName);$($item.PhysicalAddresses[0].Street);$($item.PhysicalAddresses[0].City);$($item.PhysicalAddresses[0].PostalCode);$($item.PhysicalAddresses[0].CountryOrRegion);$($item.PhoneNumbers[1]);$($item.PhoneNumbers[2]);$($item.PhoneNumbers[11]);$($item.EmailAddresses[0].Address)`r`n"
    }

Out-File -FilePath $Outtemp -InputObject $Export -Encoding UTF8 -Force

Gruß

J

Link zu diesem Kommentar

Ändert sich etwas, wenn Du diesen Wert anpasst? $view =

New-Object Microsoft.Exchange.WebServices.Data.ItemView(100000,0)

Einfach mal 99 reinschreiben, um zu sehen ob es daran liegt.

 

Im msdn-Beispiel wird sogar Itemview(6,0) gesetzt.

https://msdn.microsoft.com/en-us/library/office/dn592093(v=exchg.150).aspx

woher kommen die ItemView(100000,0)?

 

https://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.itemview_members(v=exchg.80).aspx

Link zu diesem Kommentar

Aber das passiert, wenn man Scripte von 2010 nach 2013 migriert.

Evtl. mußt Du hier aus Exchange 2010 SP2 den Exchange 2013 SP irgendwas machen.

 

$Service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2)
Exchange2013_SP1 mußt Du lt. https://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.exchangeversion(v=exchg.80).aspx eintragen.
Link zu diesem Kommentar

Morgen,

 

Fehler gefunden, Lösung steht unten ... Danke euch allen :-)

 

@blub:

Im Exchange 2010 konnte ich den Wert per Policy auf 100.000 Elemente für bestimmte User hochsetzen, beim Exchange 2013 geht das nicht mehr.

$offset = 0;
$pagesize = 20;
$MoreItems = $True;

[Int] $intCount = 0
[Void] [Reflection.Assembly]::LoadFile($dllPath)
$Service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2)
$Service.AutodiscoverUrl($mbxName, {$True})
$RootFolderID = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::contacts, $mbxName)
$RootFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($Service, $RootFolderID)

while ($MoreItems) {
    $view = New-Object Microsoft.Exchange.WebServices.Data.ItemView($pagesize,$offset)
    $findResults = $Service.FindItems($rootFolderid,$view)
    foreach($item in $findResults)   {
        $Export +=  "$($item.Surname);$($item.GivenName);$($item.CompanyName);$($item.PhysicalAddresses[0].Street);$($item.PhysicalAddresses[0].City);$($item.PhysicalAddresses[0].PostalCode);$($item.PhysicalAddresses[0].CountryOrRegion);$($item.PhoneNumbers[1]);$($item.PhoneNumbers[2]);$($item.PhoneNumbers[11]);$($item.EmailAddresses[0].Address)`r`n"
    }
    If (!$findResults.MoreAvailable) {
        $MoreItems = $False
        }
    If ($MoreItems) {
        $offset += $pagesize
        }
}

# Ausgabe
Out-File -FilePath $Outtemp -InputObject $Export -Encoding UTF8 -Force
Link zu diesem Kommentar
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...