Hintergrund
Die Raumanzeige war eine kleine Spielerei, da ich keine Verwendung für ein altes Tablet mehr hatte. Ich hatte ein altes HP Stream 7 Tablet rumliegen, welches ich irgendwann einmal für einen Spottpreis gekauft hatte. Nach ein paar kleinen Spielereien, diente es aber nur noch als Staubfänger. Als Staubfänger war das Ding ganz gut geeignet, für alles andere nicht, wie man an den Hardware Daten erkennen kann:
1 GB RAM und die kleine Atom CPU haben einfach keinen Spaß gemacht. Ursprünglich lief auf dem Stream 7 mal „Windows 8 mit Bing“, dass lies sich mit allerdings irgendwann zu Windows 10 Home aktualisieren und dann wiederum zu Windows 10 Pro upgraden. Allerdings lief schon Windows 8 auf dem Ding wie ein Sack Schrauben und bei dem Touchscreen war es eher Glückssache das zu Treffen was man haben wollte.
Irgendwo auf einer Schulung habe ich dann diese „Raumanzeigen“ an den Besprechungsräumen gesehen und hab mir gedacht, dass könnte dem Tablet ein zweites Leben einhauchen. Einfach neben der Badezimmertür aufhängen. Das Badezimmer als „Besprechungsraum“ auf dem Exchange Server anlegen und somit für die Damen des Hauses „buchbar“ machen. Ich weiß nicht warum, 3 Damen und 2 Badezimmer (wovon eine Dame noch nicht über den Waschbeckenrand schauen kann) scheinen aufgrund von mir nicht nachvollziehbaren Gründen eine Unterversorgung an Nassräumen darzustellen. Spaß beiseite, es war ein reines Bastelprojekt.
Die Umsetzung
Das Tablet sollte also Anzeigen ob ein Raum gebucht ist und dabei auf die EWS Schnittstelle des Exchange Servers zurückgreifen. Ob der Raum frei oder gebucht ist, kann dann per Webseite angezeigt werden. Um die Webseite anzuzeigen reicht der Browser des Tablets im Vollbildmodus.
Dabei ist das folgende kleine PowerShell Script entstanden:
Raumanzeige
Das Script benötigt die EWS API 2.2 (Download). Ich habe die EWS API direkt auf dem Tablet installiert, bzw. Ich habe das Verzeichnis von meinem PC auf das Tablet kopiert, denn der EWS Installer liegt nur als 64Bit Installer vor, während auf dem Tablet nur ein 32Bit Windows läuft. Das PowerShell Script habe ich dann alle 5 Minuten mit dem Windows Taskplaner starten lassen.
Das Script holt sich die entsprechenden Daten per EWS und legt eine kleine HTML-Datei an, diese Datei habe ich dann einfach per Internet Explorer im Vollbildmodus anzeigen lassen. Kleine Besonderheit: Die HTML Datei enthält im Header einen Meta Tag, der den Browser anweist die HTML-Datei alle 60 Sekunden zu aktualisieren. Das war nötig, damit eine Statusänderung auch angezeigt wird.
So in etwa sollten dann die Statusseiten für den Raum aussehen (Frei und Belegt):
Das Resultat
Eigentlich funktionierte es gar nicht so schlecht, hätte allerdings noch etwas feinschliff benötigt:
Man sieht auf dem Bild noch die Scrollbalken unten und rechts auf dem Display. Das wäre allerdings schnell durch entsprechende Anpassung im Script erledigt gewesen. Ich hab die Raumanzeige dann allerdings aus einem relativ banalen Grund nicht mehr zu Ende entwickelt: Neben der Badezimmertür ist keine Steckdose…
Das Display hat übrigens 7 Zoll, für eine schicke Anzeige hätte das also gereicht, auch hätte ich die Farben noch anpassen müssen. Ich denke ein schwarzer Hintergrund hätte besser ausgesehen. Irgendwann (mehrmals täglich) hätte das Tablet allerdings geladen werden müssen und immer wieder von der Wand abnehmen, laden und wieder aufhängen, war keine Option.
Übrigens: Das Tablet liegt wieder im Schrank und dient als Staubfänger, es funktioniert aber noch. Ich hab es nämlich für diese Seite extra mal wieder geladen und das Script ausprobiert. Vielleicht finde ich ja noch einmal Verwendung dafür…
Hallo zusammen,
bin auf dieses Script gestoßen und würde es gerne mit unserem Exchange 2019 zum laufen bekommen.
Aber leider keine AHnung wie.
Wo finde ich die EWS API 2.2 oder benötige ich diese nicht mehr beim 2019? Im Internet finde ich sie leider nicht…
Wäre klasse wenn mir jemand helfen könnte.
Hallöchen,
hat noch jemand das aufgebohrte Script, welches mit mehreren Raumpostfächern funktioniert und kann es hier posten?
Grüße
Hallo Leute,
tolles Projekt. Bekomme auch die Fehlermeldung:
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren
Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben akzeptieren.
Wie habt ihr das gelöst?
Danke,
Benjamin
Hallo,
erstmal Danke an Frank für das Skript. Ich habe dies für mein Unternehmen etwas abgeändert und möchte das natürlich keinem vorenthalten.
Anpassungen sind:
– Anzeige von maximal 2 Terminen (aktueller oder nächster Termin und ggf. darauffolgender Termin).
– lauffähig unter Exchange 2016 (mit kleiner Änderung auch mit 2019: $version muss angepasst werden)
– Ausgabe von Termininformationen (Organisatorname, Terminbetreff (Titel), Datum, Uhrzeit (von-bis))
Hier mal das Coding:
[CODE]
$uisplayname = „BESPRECHUNG“
$mailboxname = „email@domain.tld“
$username = „BESPRECHUNG“
$password = „12345678“
$domain = „domain.local“
$RoomHTMLPath = „\\server-ip\ordner\BESPRECHUNGSRAUM.html“
$EWSPath = „C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll“
# Termine per EWS abfragen (heute bis +30 Tage, maximal 10 Termine (es werden nur 2 Termine ausgegeben!))
$creds = New-Object System.Net.NetworkCredential(„$username“, „$password“)
Add-Type -Path $EWSPath
$version = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2016
$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService($version)
$service.Credentials = $creds
$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.AddDays(0), [System.DateTime]::Now.AddDays(30))
$calendarView.MaxItemsReturned = 10;
$calendarView.PropertySet = new-object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)
$results = $calendar.FindAppointments($calendarView)
#(Debug) Ergebnisse der EWS Abfrage anzeigen:
#$results | ft subject,start,end
#Termine verarbeiten
$timenow = get-date
$currentapp = $results | where {$timenow -ge $_.start -and $timenow -le $_.end}
if ($currentapp)
{
#Wenn $currentapp existiert gibt es jetzt einen Termin und der Raum ist belegt
$roomfree = $False
#(Debug) Status des Raums ausgeben:
#$roomfree
#Details des Termins holen
$MeetingStart = $currentapp.Start | get-date -format „HH:mm“
$MeetingEnd = $currentapp.End | get-date -format „HH:mm“
$MeetingDate = $currentapp.Start | get-date -format „dd.MM.yyyy“
$MeetingSubject = $currentapp.Subject
#zweiter Termin?
$Nextmeeting2 = $results | where {$_.start -ge $timenow} | select -first 1
#(Debug) Übernächstes Meeting ausgeben:
#$Nextmeeting2 | ft
$Nextmeeting2Start = $Nextmeeting2.start | get-date -format „HH:mm“
$Nextmeeting2End = $Nextmeeting2.End | get-date -format „HH:mm“
$Nextmeeting2Date = $Nextmeeting2.start | get-date -format „dd.MM.yyyy“
$Nextmeeting2Subject = $Nextmeeting2.Subject
}
else
{
#Wenn $currentapp nicht existiert ist der Raum frei
$roomfree = $True
#Status des Raums ausgeben:
#$roomfree
$Nextmeeting = $results | where {$_.start -ge $timenow} | select -first 1
#(Debug) Nächstes Meeting ausgeben:
#$Nextmeeting | ft
$NextmeetingStart = $Nextmeeting.start | get-date -format „HH:mm“
$NextmeetingEnd = $Nextmeeting.End | get-date -format „HH:mm“
$NextmeetingDate = $Nextmeeting.start | get-date -format „dd.MM.yyyy“
$NextmeetingSubject = $Nextmeeting.Subject
#übernächster Termin vorhanden?
$Nextmeeting2 = $results | where {$_.start -gt $Nextmeeting.start} | select -first 1
#(Debug) Übernächstes Meeting ausgeben:
#$Nextmeeting2 | ft
$Nextmeeting2Start = $Nextmeeting2.start | get-date -format „HH:mm“
$Nextmeeting2End = $Nextmeeting2.End | get-date -format „HH:mm“
$Nextmeeting2Date = $Nextmeeting2.start | get-date -format „dd.MM.yyyy“
$Nextmeeting2Subject = $Nextmeeting2.Subject
}
#HTML Seite erstellen
if ($roomfree -eq $true)
{
$html = “
K2 Besprechungsraum
AKTUELL FREI
Nächste Buchung(en):
(max. Anzeige von 2 Terminen in den nächsten 30 Tagen)
$NextmeetingDate $NextmeetingStart $NextmeetingEnd
$NextmeetingSubject
$Nextmeeting2Date $Nextmeeting2Start $Nextmeeting2End
$Nextmeeting2Subject
“
}
else
{
$html = “
K2 Besprechung
AKTUELL BELEGT
Gebucht:
$MeetingDate $MeetingStart $MeetingEnd
$MeetingSubject
Nächste Folgebuchung:
$Nextmeeting2Date $Nextmeeting2Start $Nextmeeting2End
$Nextmeeting2Subject
“
}
# Datei BESPRECHUNGSRAUM.html erstmal löschen
Remove-Item $RoomHTMLPath -recurse
#HTML Seite speichern
$html | set-content „$RoomHTMLPath“
#Debug – Pause setzen
#Read-Host ‚Press Enter to continue…‘ | Out-Null
[/CODE]
Man kann das natürlich auch noch etwas „schöner“ gestalten, aber für’s Erste sollte das reichen.
Viel Spaß damit,
Mathias
Hallo, kann man das Script so anpassen, dass der nächste Termintitel angezeigt wird? Also Beispiel „Termin mit Herr Meier“.
Welche Variable müsste man hier auslesen aus dem Kalender?
Und könnte man auch mehrere nächste Termine anzeigen lassen?
Also:
10.00-10.30 Uhr Termin Meier
11.00 – 12.30 Termin Müller
Vielen Dank für eine Info.
Hallo Bernd,
habe gerade das Coding gepostet, welches Dir bei Deinem Problem weiterhelfen sollte.
Viele Grüße
Mathias
Hallo Alexander,
wäre auch sehr an dem Script interessiert.
Danke im Voraus!
Hallo zusammen,
ich Reihe mich hier auch einmal ein, dass ich Interesse hätte =) falls es mit Exchange 2019 auch funktioniert…
Gruß und danke!
Hallo Alexander,
wäre auch an deinem Script interessiert … würde mich freuen!!
Danke schonmal
Hallo Alexander,
ich wäre ebenfalls an dem angepassten Skript interessiert.
Viele Grüße
Fabian
Moin,
ich hätte ebenfalls Interesse an dem Skript für Exchange 2016.
Hallo Alexander,
ich wäre auch sehr an dem Skript für Exchange 2016 interessiert. Kannst du mir es bitte mailen.
Vielen Dank
Daniel
Hi@all,
ich wäre, falls möglich, auch an dem Skript interessiert, wäre super nett. Danke schon mal.
Hallo Alexander,
auch mich würde das Skript brennend interessieren.
Es wär net, wenn Du es mir zukommen lassen würdest.
Herzlichen Dank
Andreas
Hallo, auch mich würde das funktionierende Skript für Exchange 2016 interessieren.
Ich wäre auch an dem Script interessiert.
Hat jemand das funktionierende Script für Exchange 2016?
Ich hätte dieses Script gerne.
Hallo,
super Skript, bin begeistert. Würde es gerne auf unserem Exchange 2016 nutzen. Bekomme aber folgende Fehler:
In D:\Raumanzeige\Raumanzeige.ps1:15 Zeichen:65
+ … = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]:Exchange2016
+ ~~~~~~~~~~~~~
Unerwartetes Token „:Exchange2016“ in Ausdruck oder Anweisung.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
PS D:\Raumanzeige> D:\Raumanzeige\Raumanzeige.ps1
Ausnahme beim Aufrufen von „AutodiscoverUrl“ mit 1 Argument(en): „The Autodiscover service couldn’t be located.“
In D:\Raumanzeige\Raumanzeige.ps1:19 Zeichen:1
+ $service.AutodiscoverUrl($mailboxName)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : AutodiscoverLocalException
Ausnahme beim Aufrufen von „Bind“ mit 2 Argument(en): „The Url property on the ExchangeService object must be set.“
In D:\Raumanzeige\Raumanzeige.ps1:21 Zeichen:1
+ $calendar = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($servi …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ServiceLocalException
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In D:\Raumanzeige\Raumanzeige.ps1:26 Zeichen:1
+ $results = $calendar.FindAppointments($calendarView)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren
Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben akzeptieren.
In D:\Raumanzeige\Raumanzeige.ps1:61 Zeichen:44
+ … $NextmeetingStart = $Nextmeeting.start | get-date -format „HH:mm“
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetDateCommand
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren
Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben akzeptieren.
In D:\Raumanzeige\Raumanzeige.ps1:62 Zeichen:40
+ $NextmeetingEnd = $Nextmeeting.End | get-date -format „HH:mm“
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetDateCommand
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren
Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben akzeptieren.
In D:\Raumanzeige\Raumanzeige.ps1:63 Zeichen:43
+ … $NextmeetingDate = $Nextmeeting.start | get-date -format „dd.MM.yyyy“
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetDateCommand
Hat denn keiner das funktionierende Script? Bei mir will es einfach nicht klappen…
Hallo Alexander!
Kannst Du uns dein Script zur Verfügung stellen??
LG
Hallo,
auch ich erhalte folgende Fehlermeldung:
Get-Date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akz
eptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben akzeptieren
Kann hier mal jemand das überarbeitete Skript posten? Ich bekomme es leider nicht zum Laufen. :-(
Schöne Grüße Herbertus
Guten Morgen,
ich weiß ich bin etwas spät aber vielleicht hilfts dem einen oder anderen noch. Vorweg ich bin kein Programmierer und Frank hat hier sehr gut gearbeitet und im Script entsprechend sauber kommentiert. Ich habe mir das Script angesehen und auch bei mir kam zunächst der Fehler mit der ParameterBindingsException. Beim genaueren testen, stellte ich fest dass der Fehler nur auftaucht wenn kein zukünftiger Termin gefunden wird. Damit ist es logisch dass ein Fehler auftaucht. Wenn kein Termin in dem Raum zu finden ist, bleibt die Variable „nextmeeting“ leer und somit kann er auch nichts formatieren.
Ich habe das so gelöst, dass ich die Variable „nextmeeting“ prüfen ob leer oder nicht und die folgenden variablen erst setze und formatiere, wenn „nextmeeting“ = „NICHT LEER“ ist.
Die Abfrage geht mit $nextmeeting(nicht leer) bzw. !$nextmeeting (leer)
Das sieht dann bei mir so aus:
.
.
.
$Nextmeeting = $results | where {$_.start -ge $timenow} | select -first 1
#Prüfung ob nextmeeting einen wert enthält
if ($nextmeeting){
$NextmeetingStart = $Nextmeeting.start | get-date -format „HH.mm“
$NextmeetingEnd = $Nextmeeting.End | get-date -format „HH.mm“
$NextmeetingDate = $Nextmeeting.start | get-date -format „dddd dd.MM.yyyy“
$NextmeetingTitel = $Nextmeeting.Subject
$NextmeetingOrg = $Nextmeeting.Organizer}
#wenn nextmeeting leer, wird Variable $KeinTermin gesetzt.
else {$KeinTermin = „Nix geplant“}
.
.
.
In dem HTML Teil habe ich dann mit
elseif
gearbeitet um bei 0 Zukunftsterminen, keine Leerfelder auf der HTML Seite auszugeben.
OK, vielleicht ist dass auch nicht sauber programmiert, aber für mich als Code-Laie reichts, und es funktioniert.
Beste Grüße
Moin,
hat das mal einer in einer reinen Exch. Online Umgebung probiert oder geht das da nicht?
Danke
Hallo Alexander
Ich hätte das Script auch gerne.
Danke
Moin, auch ich hätte gerne das aufgebohrte Script….
Danke vorab
VG
Hallo Alexander!
Ich hätte dein Script auch.
Vielen Dank im Voraus.
VG
Hallo Alexander!
Ich hätte dein Script auch gerne.
Grüße
Hallo Alexander!
Kannst du uns dein Script zur Verfügung stellen??
LG
Da sich hier einige über den Selben Fehler beklagen, habe ich mir das Script genauer angesehen, und adaptiert. Bei mir Funktioniert es nun. Da wir mehrere Räume haben, habe ich das Script auch gleich aufgebohrt, um alle Räume auf einmal zu erstellen. Falls wer bedarf hat bitte einfach kurz einen Kommentar hinterlassen :)
LG
Hallo Alexander, könnte ich das aufgebohrte Script bekommen?
Das wäre super nett. Vielen Dank und einen schönen Tag noch
Gruß
Jürgen Laubrock
Hallo Alexander,
gibt es das Skript noch?
Wäre sehr schön, wenn ich es bekommen könnte.
Vielen Dank
Michael
Hallo Alexander,
wäre auch an deinem Script interessiert … würde mich freuen!!
Danke schonmal
Hallo Alexander,
gibt es das aufgebohrte Skript noch? Wenn ja, stellst du mir dieses bitte per Mail zur Verfügung?
Im Voraus vielen lieben Dank.
Hallo Alexander,
ich interessiere mich sehr fuer das Skript.
koennen Sie mir bitte Schicken ?
VG
maro
Hallo Alexander,
gibt es das Script noch? Dann wäre ich auch daran interessiert.
LG Oli
Hallo Alex,
könnte ich das Script noch bekommen?
Vielen Dank und viele Grüße
Nils
Eine ganz andere Frage?! Wozu benötige ich für den Raum ein Passwort in dem Script?? Oder kann ich ein vorhandenes Konto samt Passwort verwenden? Wenn ich den Raum anlege werde ich nicht nach einem Passwort gefragt. Das Raumkonto schein auch gesperrt zu sein (Pfeil nach unten).
Grüße Herta
Hallo,
habe ebenfalls das Problem mit dem fehlerhaften Aufruf:
—————————————————————–
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben
akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben
akzeptieren.
In C:\neu\Raumanzeige.ps1:61 Zeichen:44
+ $NextmeetingStart = $Nextmeeting.start | get-date -format „HH:mm“
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetDateCommand
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben
akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben
akzeptieren.
In C:\neu\Raumanzeige.ps1:62 Zeichen:40
+ $NextmeetingEnd = $Nextmeeting.End | get-date -format „HH:mm“
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetDateCommand
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben
akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben
akzeptieren.
In C:\neu\Raumanzeige.ps1:63 Zeichen:43
+ $NextmeetingDate = $Nextmeeting.start | get-date -format „dd.MM.yyyy“
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetDateCommand
—————————————————————–
es scheint so, als ob er keine Einträge findet.
Hi Frank,
unser Azubi würde in dem Fall leider eher die ganze Exchange Farm zerstören :)
Ich muss auch ehrlich gestehen, dass ich aktuell ziemlich auf dem Schlauch stehe…
Dein Skript schmeißt mich in Zeile 19 immer raus mit dem Error:
„The Autodiscover service couldn’t be located.“
Hast du einen Lösungsansatz für mich?
Hallo zusammen,
hat inzwischen jemand zu diesem Fehler eine Lösung?
Gruß
Ist der Autodiscover-Eintrag im DNS gesetzt und korrekt?
Hi Franky,
wir sind ein mittelständischer Konzern mit mehreren Standorten weltweit – wobei ich in der zentralen IT sitze, mitverantwortlich für AD & Exchange.
Unser IT Kollege am Standort Österreich hat für diesen Fall ein sehr teures System gekauft und implementiert.
Ein Monitor der neben jedem Meetingraum hängt und anzeigt, OB dieser Raum gebucht ist, WANN und durch WEN.
Wenn dieser Raum frei ist, kann man darüber auch direkt „spontan“ buchen.
Wie schwer wäre es, denn dein Skript in diese Weise zu erweitern?
Evtl. ein Butten „jetzt buchen“ und die notwendige Zeit angeben, damit dieser Raum dann sofort gebucht wird.
Wie schwer wäre das umzusetzen?
Liebe Grüße
Mille
Hi,
ich würde nicht dieses Script erweitern, dies war nur ein kleines Spielprojekt. Grundsätzlich ist es aber nicht weiter kompliziert deine Anforderung umzusetzen. Man könnte daraus ein kleines Azubi Projekt machen.
Gruß,
Frank
Hi Franky,
vielen Dank für das tolle Projekt. Ich komme allerdings genau wie mein Vorredner nicht weiter…
LG Micha
—————–
PS D:\Userprofil\jelinski.KS\Desktop\Raumanzeige> D:\Userprofil\jelinski.KS\Desktop\Raumanzeige\Raumanzeige.ps1
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren
Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben akzeptieren.
In D:\Userprofil\jelinski.KS\Desktop\Raumanzeige\Raumanzeige.ps1:61 Zeichen:44
+ … $NextmeetingStart = $Nextmeeting.start | get-date -format „HH:mm“
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetDateCommand
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren
Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben akzeptieren.
In D:\Userprofil\jelinski.KS\Desktop\Raumanzeige\Raumanzeige.ps1:62 Zeichen:40
+ $NextmeetingEnd = $Nextmeeting.End | get-date -format „HH:mm“
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetDateCommand
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren
Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben akzeptieren.
In D:\Userprofil\jelinski.KS\Desktop\Raumanzeige\Raumanzeige.ps1:63 Zeichen:43
+ … $NextmeetingDate = $Nextmeeting.start | get-date -format „dd.MM.yyyy“
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.GetDateCommand
Hi,
bin gerade zufällig auf dieses Super Script gestoßen.
Wir nutzen Exchange 2013. Leider erhalte ich einen Fehler bei get-date:
get-date : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der
Parameter übereinstimmen, die Pipelineeingaben akzeptieren.
In Z:\Installationen\Software\Scripts\Raumanzeige\Raumanzeige\Raumanzeige.ps1:61 Zeichen:44
+ … $NextmeetingStart = $Nextmeeting.start | get-date -format „HH:mm“
Kann ich da irgendwas tun?
Moin,
Nettes Tool!
Wäre es auch möglich die Aufbereitung und die Seite direkt auf dem Server laufen zu lasen und die Seite dann von einem anderen Device aus aufzurufen?
Habe hier noch einige ale Androiden rumliegen die ich gerne für solch zwecke nutzen würde.
Ein Webserver läuft ja auf dem Server sowieso.
Gruss Ralf
Hi Ralf,
ja, das geht natürlich auch.
Gruß, Frank