Letzte Aktualisierung am 12.10.2024, 10:10:55 Uhr
Ich habe in den letzten Wochen ein PowerShell-Skript geschrieben, welches Informationen zu einer Seriennummer von Fujitsu ausliest. Anlass dafür ist, dass mein Arbeitgeber hauptsächlich Fujitsu Geräte im Einsatz hat. Die Garantie Informationen sind bisher händisch in die Asset-Management-System-Software eingetragen worden. Worauf natürlich keiner wirklich Lust hat… egal ob Kollegen, Auszubildende oder Praktikanten.
Nachstehend ein Screenshot des Skripts:
Wird dem Skript keine Parameter übergeben, so wird nach dessen Start die Seriennummer eines Geräts automatisch abgefragt. Bei jedem Lauf des Skripts wird automatisch ein vollständiges Protokoll automatisch erstellt. Dieses wird im selben Verzeichnis, in dem das Skript abgelegt ist, gespeichert.
Natürlich lässt sich das Skript auch automatisieren. Dazu gibt es aktuell verschiedene Parameter, welche nachstehend erklärt werden.
SerialNumber
Mit dem Parameter kann eine oder mehrere Seriennummer(n) übergeben werden.
.\fujtisu-support_check-warranty-status.ps1 -SerialNumber "YLPW019174" .\fujtisu-support_check-warranty-status.ps1 -SerialNumber "YLPW019174;DSET073915"
Wichtig ist an dieser Stelle, dass Semikolon (;) als Trennzeichen verwendet werden muss!
csv
Es ist selbstverständlich möglich die Daten der abgefragten Geräte in einer CSV Datei zu exportieren. Trotzdem werden in der PowerShell Konsole des Skripts die Informationen ausgegeben.
.\fujtisu-support_check-warranty-status.ps1 -SerialNumber "YLPW019174" -csv .\fujtisu-support_check-warranty-status.ps1 -SerialNumber "YLPW019174;DSET073915" -csv
Als Dateinamen für die CSV Datei wird das aktuelle Datum und Uhrzeit genutzt. Die Datei wird im selben Verzeichnis abgelegt, in dem auch das Powershell Skript liegt.
Interactive
Möchte man das Resultat am Bildschirm sehen, so gibt es einen Parameter mit dem Namen Interactive. Wird dieser angegeben, bleibt das Konsolenfenster des Skripts am Ende offen.
.\fujtisu-support_check-warranty-status.ps1 -SerialNumber "YM5G017837" -Interactive
Das PowerShell Skript soll ein Ansatz darstellen. Es ist grundsätzlich denkbar dieses in ein Asset Management zu integrieren und so die Daten der Geräte entsprechend zu ergänzen. Dazu muss das AM allerdings einen API bereitstellen.
Das aktuelle Version des Skripts stelle ich in meinen Git-Repository bereit. Gerne erweitere ich das Skript bei Bedarf. Schreibt mir dazu einfach einen Kommentar oder E-Mail.
Hallo, vielen Dank für deine Arbeit. Ich hatte das Skript bis vor kurzem verwendet, es funktioniert leider jetzt nicht mehr. Ich erhalte folgenden Fehler: Irgendwie scheint der Web-Request nicht mehr zu funktionieren. ———————————————————————————————————————— Fujitsu Garantie / Service Status ueberpruefen ———————————————————————————————————————— ######################################################################################################################## # Skript: C:\Temp\fujitsu-warranty-status-checker.ps1 # Startzeit: 06.12.2024 13:04:23 # Startzeit: 06.12.2024 13:04:23 # BenutzerKonto: *zensiert* # Computername: *zensiert* ######################################################################################################################## 2024-12-06 13:04:23 – Info – Überprüfen ob Seriennummern(n) als Parameter übergeben worden sind. 2024-12-06 13:04:23 – Info – Mindestens eine Seriennummer gefunden. 2024-12-06 13:04:23 – Info – Überprüfen des Muster/Länge der Seriennummer ‚DSHA013369‘. 2024-12-06 13:04:23 – Success – Gültige Seriennummer erkannt. 2024-12-06 13:04:23 – Info – Aktuellen Token der Webseite auslesen 2024-12-06 13:04:24 – Info – Abfrage… Weiterlesen »
Hallo Sebastian,
wann hat es bei dir zum letzten Mal funktioniert?
Gruß,
Daniel
Hall Daniel,
ich weiß es nicht genau, weil ich dass über eine Automatik laufen lasse und dort schonmal alle gelaufen waren. Ich musste jetzt die Daten löschen und es nochmal laufen lassen.
Ich denke es hat vor ca. 3 Monaten noch funktioniert.
Hast du eine Idee wo hier das Problem liegt? Hat Fujitsu etwas geändert?
Grüße Sebastian
Hallo Sebastian, Hast du eine Idee wo hier das Problem liegt? Hat Fujitsu etwas geändert? In der Tat hat Fujitsu die Seite verändert. Soweit ich das aktuell umreisen kann, wird nach dem Abrufen der Informationen des angegebene Geräts geprüft, ob ein DIV mit dem Namen „xyz“ auf der aus zugegebenen Seite vorhanden ist. Wenn das DIV nicht gefunden wird, erfolgt eine Weiterweitleitung auf die Startseite. Und das bricht meinem Skript die Logik. Im Worst Case läuft es auf einem Chrome/Edge Driver hinaus. Welches das Skript umfangreicher und komplexer macht. Schau ich mir aber nochmals genauer an. Gerne darfst du und… Weiterlesen »
Hallo Daniel,
danke schonmal dafür.
Es geht um 150 Geräte bei denen ich die Garantieinfos abfragen muss.
Grüße Sebastian
Hallo Sebastian,
bitte schreibe mir eine E-Mail (siehe Impressum) mit 2-3 Seriennummern von Geräten, welche noch eine gültige Garantie haben. Im Gegenzug werde ich dir 2-3 Tage später eine neue Fassung des Skripts zur Verfügung stellen.
Schöne Grüße,
Daniel
Hi Daniel,
ich habe dir die Daten geschickt.
Vielen Dank!
Grüße Sebastian
Hallo, erstmal danke, dass du dich mit sowas beschäftigst. Ich bekomme leider einen Fehler beim Ausführen. Ich habe keine Ahnung was die Website hier erwartet, die getesteten Seriennummern waren alle gültig. Eventuell kann mir ja jemand weiterhelfen, ich kenne mich da leider zu wenig aus. Grüße, Simon Invoke-WebRequest : Server Error in '/Adler' Application. Input string was not in a correct format. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.FormatException: Input string was not… Weiterlesen »
Guten Abend Simon,
vielen Dank für den Hinweis.
In diesen Fall haben die Entwickler von/für Fujitsu etwas geändert.
Ich habe dem entsprechend Änderungen vorgenommen und die neue Version so eben hochgeladen.
Grüße,
Daniel
Hallo, kann es sein, dass die URL schon wieder geändert worden ist? Ich bekomme einen 404-Error zurück. Außerdem würde mich interessieren, wie Du auf den Token-Teil der URL kommst
Hallo Max,
leider Ja. 🙁 Ich bin schon dran….
Schreib mir bitte eine E-Mail, dann stelle ich dir vorab zum Testen eine neue Version zur Verfügung.Der Token wird dynamisch generiert. An der Stelle habe ich vergessen, den Code nochmals anzupassen. Zum Testen habe ich irgendwann den Token statisch eingetragen und vergessen die Änderung wieder zurückgängig zu machen.
Ich habe die neue Version hochgeladen. Bitte bei Gelegenheit ausführlich testen.
Grüße,
Daniel
Hallo,
dankeschön für das wirklich gut gemachte und sehr hilfreiche Script! 🙂 Ich habe beim Testen gesehen, dass unser Proxyserver den Invoke-Webrequest nicht durchlässt, da die Abfrage nicht authentisiert ist. Daher habe ich den Webrequest so umgebaut, dass er einen vorhandenen Proxy ermittelt und die Abfrage im Kontext des angemeldeten Users über diesen leitet. Da vermutlich andere, die den Garantiestatus für ihre Fujitsu-Systeme ermitteln wollen, auch hinter Proxies sitzen, hier die Code-Änderung:
alt:
neu:
Viele Grüße,
Arne
…damit das Script in beiden Fällen (kein Proxy oder Proxy), läuft, kann man das Vorhandensein eines Proxies mit einem einfachen if(Test-Connection google.com -Count 1 -Quiet) abfragen und dann $uri entweder direkt oder über den Proxy aufrufen.
Hallo Arne,
vielen Dank für deinen Verbesserungsvorschlag und Codeschnipsel.
Ich habe kurzer Hand diese in mein Skript integriert. Wenn du mir eine E-Mail schreibst, dann stelle ich dir die neue Version vorab zum Testen bereit.
Gruß,
Daniel
Hi, vielen Dank für das Klasse Skript. Könntest du vielleicht auch einen CSV Schalter mit einbauen, damit man auch mehrer Seriennummern in einen Rutsch abfragen kann?
Gruß
Pascal
Hallo Pascal, ich rede mal mit dem Christkind. 😉
Gruß,
Daniel
Hi dw, hoffentlich ist das Christkind gut gelaunt 😉
Hallo Pascal, der erste Entwurf ist fertig zum Testen. Bitte melde dich via E-Mail bei mir (siehe Impressum). Gruß Daniel
Hallo Pascal,
die neue Version ist nun online. Bitte teste, ob es deiner Vorstellung entspricht. 🙂
Gruß,
Daniel
Hallo Daniel, das Skript gab mir einen Fehler aus, aber ich habe es nochmal kontrolliert und scheinbar hatte Fujitsu was an der Seite verändert. Ich habe es mit meinen halbwissen gefixt und den Punkt „Serinnummer“ in der Ausgabe hinzugefügt. <# .SYNOPSIS Dieses Skript ruft die Garantieinformationen eines Geräts vom Hersteller Fujitsu ab Daniel Wydler THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER. .DESCRIPTION .PARAMETER SerialNumber Angabe der Seriennummer des Geräts, welches abgefragt werden soll .PARAMETER csv… Weiterlesen »
Hallo Pascal,
vielen Dank für den Hinweis.
Ich habe die notwendigen Korrekturen vorgenommen. In diesem Zuge habe ich auch deinen Vorschlag übernommen, dass auch die Seriennummer in der CSV Datei exportiert wird. Macht durch aus Sinn. 😉
Gruß,
Daniel
Ich wollte einen Warranty Check als Teil von einem Script bauen und hab deines hier gefunden. Jedoch, wenn ich nur die Funktion „GetWarrantyInfo“ z.B. einzeln ausführe, dann bekomme ich keinen Wert zurück. Auch wenn ich den ersten Link, der abgerufen wird, im Browser aufrufen will, bekomme ich eine blanke Seite. Jedoch wenn ich dein Script als ganzes ausführe, dann scheint es zu funktionieren.
Hallo, vielen Dank für deine Arbeit! Allerdings gibt mir dein Script falsche Werte zurück. Für einen alten P520 mit der Identnr. YLPW019174 bekomme ich z.B.: folgende Ausgabe: Produktname: Fujitsu LIFEBOOK E754 HM86 Bestellnummer: S26391-K393-V100 Service Code: FSP:GM5S20Z00DENB2 Service Start: 31.07.2015 Service Ende: 31.07.2020 Service Status: Ihr Produkt ist unter Service Garantie Gruppe: NB2 Garantie Art: 5 Jahre Vor-Ort Service, 9×5, nächster Arbeitstag Antrittszeit, gilt im Land des Erwerbs Ebenfalls für einen nicht so alten P920. Weiters ist mir aufgefallen, dass der Parameter „-strSerialNumber „YYYY0000″“ so nicht mehr notwendig ist, bzw auch gar nicht funktioniert. Während ich das jetzt geschrieben habe,… Weiterlesen »
Guten Abend Johannes,
vielen Dank für den Hinweis. Ich habe so eben die Version 0.3 korrigiert. Dort war u.a. noch eine Seriennummer von mir fest eingetragen. Was zur Folge hatte, dass immer die selben Daten abgefragt wurden.
Bezüglich des P920 hätte ich gerne die Seriennummer, um evtl. Anpassungen am Skript vornehmen zu können. Die Variable „strSerialNumber“ gibt es in meinem Script nicht.
Gruß,
Daniel
Hallo,
gibt es dazu ein Update? Das Skrip scheint nicht zu funktionieren, selbst wenn ich den enthaltenen Link zu Fujitsu direkt aufrufe.
http://support.ts.fujitsu.com/Warranty/WarrantyStatus.asp?lng=DE&IDNR=XXXXXXXX
Hallo Marcus,
vielen Dank für den Hinweis. Fujitsu hat leider ihr Abfragesystem inzwischen umgebaut. Leider war es nicht ganz einfach, das neue System zu verstehen. Ich habe so eben die Version 0.3 veröffentlicht. Bitte in Ruhe testen…
Gruß