Kennt jemand die WPTools von Hank Kelder?

(DE) System, Installation, Konfiguration, Hardware, Treiber, Netzwerk, Virtualisierung, etc.
(EN) System, Installation, Configuration, Hardware, Drivers, Network, Virtualisation, etc.
andreas
Beiträge: 263
Registriert: Mo 30. Dez 2013, 19:55

Beitrag von andreas »

DonLucio hat geschrieben: Sa 21. Okt 2023, 17:39 Meine GUI-Version von WPSREST kann jetzt getestet werden
Danke!
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

Hallo Lars,
danke für dein Feedback.
erdmann hat geschrieben: So 22. Okt 2023, 14:06 Mehr oder weniger alle Shadow Objekte ("Find Shadow-Orphans") werden von WPORest als "orphaned" angezeigt, obwohl die Originaldateien vorhanden sind.
Bei mir sind es gut die Hälfte aller Shadow-Objekte, die in diesem Sinne "verwaist" sind.

erdmann hat geschrieben: So 22. Okt 2023, 14:06Ich vermute, dass du nicht nach den tatsächlichen Dateinamen fahndest sondern statt dessen nach dem Titel (also dem .LONGNAME extended attribut).
Weder noch. Ich suche nach (non-shadow-) Objekten, deren OBJECTID mit der SHADOWID des Shadow-Objekts übereinstimmt. Und das habe ich mehrfach überprüft: Wenn ein Shadow-Objekt als "Waise" (orphan) ausgewiesen wird, existiert in der WPSBKP.DAT kein Objekt mit OBJECTID=SHADOWID.

Aber wenn das eine falsche Vorgehensweise sein sollte: Ich wüßte nicht, wonach ich sonst suchen soll. Einen "tatsächlichen Dateinamen" zeigt mir das Shadow-Objekt ja nicht an und Extended Attributes habe ich ja bei abstrakten Objekten auch nicht (afaik). Ich habe ja keinen Zugriff auf die Original-Objekte, wie sie auf dem Quell-System (dem PC, von dem die WPSBKP.DAT stammt) existieren. Ich habe nur die Information, die in WPSBKP.DAT enthalten ist.

erdmann hat geschrieben: So 22. Okt 2023, 14:06 Was hier wahrscheinlich helfe würde ist, sich zunächst mal mittels "WinQueryObject" für einen "object title" oder eine "object id" ein Handle geben zu lassen um darauf hin sich mit diesem Handle mittels "WinQueryObjectPath" den "real name" (also inklusive Pfad und realem Dateinamen) geben zu lassen. Leider gibt es dafür kein direktes REXX pendant, aber vielleicht enthält WPTOOLS.DLL dafür irgendwas REXX Brauchbares.
Ein direktes Rexx-Pendant gibt es zwar nicht, aber es gibt Bibliotheken, die eine Menge Lücken, die z.B. RexxUtil.dll offen läßt, schliessen. Z.B. RxWinQueryObject(objname) in RXU.dll. Auch RxExtra enthält ähnliche Funktionen. Ich wüßte aber nicht, auf welche "Objekte" ich solche Funktion anwenden sollte. Es gibt ja noch keine Objekte. Die sollen ja erst wiederhergestellt werden. Oder bin ich da grundsätzlich auf der falschen Schiene?


erdmann hat geschrieben: So 22. Okt 2023, 14:06 Außerdem: offensichtlich hast du dich entschieden, nur Objekte restaurierbar zu machen, die entweder direkt auf dem Desktop liegen, oder indirekt über eine "Verzeichniskette" unter dem Desktop liegen.
Gibt es dafür einen Grund ?
Ich denke, der Grund ist: Ziel des Programms ist es, Objekte auf dem Desktop (aka WPS) zu restaurieren. Objekte, die "unterhalb" von <WP_DESKTOP> liegen, werden im Zuge der rekursiven Wiederherstellung natürlich ebenfalls restauriert. "Untere" Objekte, die nicht irgendwann oben, also auf dem Desktop verwurzelt sind, erreiche ich damit nicht, das stimmt. Aber ich sehe keinen Sinn in solchen Objekten. Existieren die? Und wenn ja; Wie komme ich als User da heran, wenn nicht vom Desktop aus?

erdmann hat geschrieben: So 22. Okt 2023, 14:06 Das ist bei mir bei weitem aber nicht für alle Objekte der Fall (objects processed: 969, objects with parent=<WP_DESKTOP>:80, actually shown:80).
Also du willst sagen, du hast jede Menge Objekte, die nicht letztendlich über den Desktop erreichbar sind? Kannst du dafür bitte mal ein Beispiel nennen?

Übrigens: "Processed: 969, actually shown:80": Dass da kein Mißverständnis entsteht: Es werden immer *alle* Objekte aus der Datei WPSBKP.DAT verarbeitet, aber nur Objekte mit Parent=<WP_DESKTOP> werden in der graphischen Übersicht angezeigt. Die anderen (in deinem Fall: 889) Objekte werden im Falle eines Restore-Befehls entsprechend ihrer "Verlinkung" ebenfalls erfasst. So ist jedenfalls die Absicht ... ;)

erdmann hat geschrieben: So 22. Okt 2023, 14:06 Aus irgendeinem (sinnvollen) Grund scheint WPSBKUP/WPSREST nämlich auch Dinge zu berücksichtigen, wo nur ein Shadow auf dem Desktop liegt, dieser Shadow aber auf ein Verzeichnis zeigt und dieses "echte" Verzeichnis weitere "echte" Verzeichnisse und auch andere Objekte enthält. Die ganzen Sachen werden eben auch mitgesichert und sollten deshalb auch wiederherstellbar sein.
Klar, sollten sie, ohne Zweifel. Aber auch an dieser Stelle gilt: Ich kann Zusammengehörigkeiten von Shadow- zu Real-Objekt nur durch die beiden Parameter OBECTJID und SHADOWID (Bestandteile des Setupstrings) erkennen.

erdmann hat geschrieben: So 22. Okt 2023, 14:06 Ansonsten ist eine graphische Lösung im Jahr 2023 schon irgendwie erstens schön und zweitens selbstverständlich, also Glückwunsch !
Danke! :)
Aber korrekt arbeiten sollte sie natürlich schon. Insofern vielen Dank für deine Hinweise.

Ich habe eine neue Version eingestellt, wo du "Only Desktop" abwählen kannst. Schau mal, ob das etwas ändert.

Gruß,
Lutz W.
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

DonLucio hat geschrieben: Sa 21. Okt 2023, 17:39 os2.zworks.de/WPORest.zip
Oops... da war doch noch einer drin, ein Bug: In einigen Fällen wurden die Iconfiles nicht korrekt wiederhergestellt. Sollte jetzt behoben sein.

Neue Version s. Link oben.

Achtung:
Beim Drüberkopieren über die alte Version sollte man seine bestehende Version der WPORest.INI vorher sichern.

Gruß,
Lutz W.
Antworten