rene12345
Goto Top

Exchange 2019 Management Shell Skript Variable in Pipe nur bestimmtes Objekt

Guten Tag,
ich möchte gerne ein Skript schreiben welches mir bestimmte Kalendereinträge in ein Textdokument schreibt.
Nun bleibe ich an einer, wahrscheinlichen, Kleinigkeit kleben.

Die Management Shell gibt mir bspw. folgende Kalendereinträge an:

IsRecurring                  : False
MeetingRequestWasSent        : False
IsResponseRequested          : True
AppointmentType              : Single
MyResponseType               : Unknown
Attachments                  : {}
DateTimeReceived             : 24.04.2019 09:36:52
Size                         : 4333
Categories                   : {}
Culture                      : de-DE
Importance                   : Normal
InReplyTo                    :
IsSubmitted                  : False
IsAssociated                 : False
IsDraft                      : False
IsFromMe                     : False
IsResend                     : False
IsUnmodified                 : False
InternetMessageHeaders       :
DateTimeSent                 : 24.04.2019 09:36:52
DateTimeCreated              : 24.04.2019 09:37:09
AllowedResponseActions       :
ReminderDueBy                : 09.10.2019 00:00:00
IsReminderSet                : False
ReminderMinutesBeforeStart   : 15
DisplayCc                    :
ItemClass                    : IPM.Appointment
Subject                      : Digital Business Analysis & Design

Dabei möchte ich nur das Subject angezeigt bekommen, welches den Wortlaut "Digital" beinhaltet. Entsprechend folgt:

$results | ?{$_.subject -like "*Digital*"}  | Out-File "C:\temp\Test.log" -append  

Das funktioniert leider nicht. Was mache ich hier falsch?

Danke für eure Hilfe.

Grüße

Content-ID: 488970

Url: https://administrator.de/contentid/488970

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

140913
Lösung 140913 27.08.2019 aktualisiert um 16:05:21 Uhr
Goto Top
Dabei möchte ich nur das Subject angezeigt bekommen, welches den Wortlaut "Digital" beinhaltet.
Du schreibst ein "Object" in die Textdatei statt den eigentlichen String...
So landen nur die Subjects in der Textdatei die "Digital" enthalten
$results | ?{$_.Subject -like "*Digital*"} | select -Expand Subject | Out-File "C:\temp\Test.log" -append  
erikro
erikro 27.08.2019 um 16:03:14 Uhr
Goto Top
Moin,

und wie kommt das $results zustande? Poste doch bitte das ganze Skript.

Liebe Grüße

Erik
Rene12345
Rene12345 27.08.2019 aktualisiert um 16:12:51 Uhr
Goto Top
Das komplette Skript sieht so aus:

$MailboxName = "Account@domäne.de"  
$EWSPath = "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"  
 
Add-Type -Path $EWSPath
$version = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2 
  
$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService($version)  
$service.ImpersonatedUserId = new-object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SmtpAddress,$MailboxName);
$service.AutodiscoverUrl($mailboxName)
 
$calendar = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar)
$calendarView = new-object Microsoft.Exchange.WebServices.Data.CalendarView([System.DateTime]::Now, [System.DateTime]::Now.AddDays(365))
$calendarView.MaxItemsReturned = 200;
$calendarView.PropertySet = new-object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)
 
$results = $calendar.FindAppointments($calendarView)
 
$results | ?{$_.subject -like "*Digital*"}  | Out-File "C:\temp\Test.log" -append  

"gestohlen" von hier: https://social.technet.microsoft.com/Forums/ie/de-DE/789bac64-6194-4831- ...

Mein eigentliches Ziel ist es, alle Kalendereinträge mit dem Wortlaut "Digital" auszulesen und dann in einen neuen Kalender inkl. des Datums/der Zeit und dem Namen der Person von wem der Eintrag war in einen Gemeinschaftskalender schreiben zu lassen. Das mit dem Textdokument ist gerade nur ein Zwischenschritt damit ich kontrollieren kann ob es davor funktioniert. Bisher funktionierte auch alles, bis auf der Text im Dokument. Dank @140913 jetzt schon. face-smile
140913
Lösung 140913 27.08.2019 aktualisiert um 16:25:51 Uhr
Goto Top
Mein eigentliches Ziel ist es, alle Kalendereinträge mit dem Wortlaut "Digital" auszulesen und dann in einen neuen Kalender inkl. des Datums/der Zeit und dem Namen der Person von wem der Eintrag war in einen Gemeinschaftskalender schreiben zu lassen
Dann solltest du das auch in deinem Post schreiben, dort schreibst du das du es in eine Textdatei exportieren willst und jetzt was ganz anderes.

Siehe Abschnitt "Copy Items" hier wie man Einträge kopiert
https://gsexdev.blogspot.com/2012/02/ews-managed-api-and-powershell-how- ...

Wenn's das dann war Haken nicht vergessen. Die Frage des Initialen Posts ist ja schon beantwortet worden.