Raumanzeige

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:

Hardware HP Stream 7

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:

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):

Raumanzeige Frei

Raumanzeige Belegt

Das Resultat

Eigentlich funktionierte es gar nicht so schlecht, hätte allerdings noch etwas feinschliff benötigt:

Raumanzeige auf HP Stream 7

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…

47 Gedanken zu „Raumanzeige“

  1. 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.

    Antworten
  2. Hallöchen,

    hat noch jemand das aufgebohrte Script, welches mit mehreren Raumpostfächern funktioniert und kann es hier posten?

    Grüße

    Antworten
  3. 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

    Antworten
  4. 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

    Antworten
  5. 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.

    Antworten
  6. 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

    Antworten
  7. 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

    Antworten
  8. 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

    Antworten
  9. 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

    Antworten
  10. 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

    Antworten
  11. 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

    Antworten
  12. 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.

    Antworten
  13. 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?

    Antworten
  14. 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

    Antworten
    • 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

      Antworten
  15. 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

    Antworten
  16. 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?

    Antworten
  17. 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

    Antworten

Schreibe einen Kommentar