So - Update hochgeladen. X2 macht da was anders als XProfan9.
Läuft jetzt?
Reparse Points
-
-
-
Immer noch das gleiche Problem. Habe inzwischen auch mal was probiert. Wenn ich die Zeilen
CodeIf RP.IsReparsePoint("C:\Programme") 'Print "C:\Programme ist mit " + RP.GetReparsepoint("C:\Programme") + " verknüpft!" Else Print "Der ordner C:\Programme ist keine Symbolische Verknüpfung!" endif
rausnehme, compiliert und mit Adminrechten klappt es dann.Gruß Volkmar
-
Noch einmal Update hochgeladen. Profan macht da Mist, wenn der Ordner dort nicht existiert.
-
Jetzt läufts durch
Gruß Volkmar
-
EDIT ups, ihr habt das problem ja schon im griff. mein text vorher wäre gewesen:
äh...Muss das dann nicht "c:\Program Files\" lauten? Reparse arbeitet m.E. auf das NTFS-Filesystem, sehr ähnlich dem MOUNT von Unix/Linux, daher ist es doch vermutlich besser, die physischen Gerätenamen zu nehmen, die man nur mit CMD.exe zu sehen bekommt. (Im Windows Explorer sieht man ja nur die in Landessprache übersetzten Gerätschafts- und Verzeichnisbezeichnungen - zusammen mit virtuellen Ordnern, auf die man nichteinmal als gewöhnlicher PC-Admin Zugriff hat, und die es physisch gar nicht gibt...).
-
No - muss C:\Programme lauten - das ist das Reparse Point.
Ist ein unsichtbarer Ordner ohne Leserechte für Admins.
Das Ziel ist c:\Program Files. -
Die Ordner haben übrigens keine Leserechte, damit bei einer rekursiven Dateisuche sich Programme nicht festfahren - die würden dann in eine Endlosschleife laufen, wenn sie dort die Unterordner auslesen.
-
Update-Link weg?
-
...im Prinzip sollte man es aber trotzdem möglichst umgehen, bei einer rekursiven Dateisuche solchen Symbolischen Verknüpfungen zu folgen, wenn dort Ordner verknüpft worden sind.
Selbst Antivirenhersteller machen manchmal diesen Fehler - und wie gesagt, das endet dann in der Regel in einer Endlosschleife. -
PS: Link ist immer noch bei Posting Nummer 13: Reparse Points
-
Noch was: Die PCU verschafft sich zusätzliche Leserechte auf Ordner und Dateien - also mehr, als der Admin an Leserechten hat. Es sollte bei der Nutzung der PCU unbedingt vermieden werden, solchen Symbolischen Verknüpfungen bei der Rekursiven Dateisuche zu folgen. Nur wenn RP.IsReparsePoint(Ordnername) bei einem Ordner 0 ist, dürfen weitere Unterordner des Ordners ermittelt werden!
-
Ist klar, warum man genau diesen Symbolischen Verknüpfungen nicht folgen sollte und was ich damit meine?
Zumindesten bei Betriebsystemen ab Windows Vista ist das bei der Programmierung nicht ganz unwichtig. Falls das nicht klar ist, erkläre ich das mal anhand einiger Beispiele etwas genauer. Ist eine böse Falle.
Es geht im Prinzip um alle Codes, die rekursiv nach Dateien suchen - nicht nur um die Verwendung der PCU. Von den online gestellten Codes, DLLs und PCU's dürfte kein Code das korrekt tun. -
Klar, damit kann man in Betriebssystemen unendliche Verwirrung stiften. Deine PCU sollte besser nicht in die falschen Hände geraten...
-
Also nicht verstanden? Es geht um normale Dateisuchen und unveränderte Betriebsysteme - nicht um Sachen, die durch die PCU geändert werden können. Also um allgemeine Programmierung.
-
Nochmals: Ich behaupte hier ganz frech, dass so ziemlich alle Codes für rekursive Dateisuchen, die ich bislang gesehen habe, nicht korrekt programmiert sind und zumindestens ab Vista Betriebsystemen zu falschen Ergebnissen oder zum Festzitzen in einer Endlosschleife führen können - und das ohne irgendetwas am System zu ändern. Ist klar, warum das so ist?
Grund dafür sind bestimmte Symbolische Verknüpfungen, die auf jedem Betriebsystem ab Vista existieren.
-
OK, ich glaube jetzt kapiere ich's: Du kritisierst völlig zu Recht BESTEHENDE Mängel, es geht Dir nicht um das Aufzeigen, wie man neuen Irrsinn schaffen kann ;-).
GrussP.S.: Mich Bosnigl interessiert halt jede Möglichkeit, Computer abstürzen zu lassen - und die Schuld daran den Herstellern anlasten zu können !
-
Ich kritisiere keine bestehenden Mängel, sondern möchte gerne einen schlimmen Fehler aufzeigen, den man beim Programmieren einer rekursiven Dateisuche in der Regel begeht.
Wenn ich das nicht erklären muss, werde ich das nicht tun - das Erklären geht etwas tiefer ins Betriebsystem und ist etwas Arbeit für mich. -
Ich tät's ohnehin nicht kapieren... was das betrifft bist Du ein absoluter Superspezialist! Gut für uns 'Normalos', daß es solche wohlmeinenden Leute wie dich gibt, die auf solche Untiefen und Fallen hinweisen. Bedarf bestünde also an einem Diagnoseprogramm, das solche Schleifen in der Verzeichnisstruktur erkennen und davor warnen kann (z.B. durch Mitzählen und rechtzeitiges Aussteigen)...
Gruss -
Das geht viel einfacher. Es macht bloß keiner, weil es nur unter bestimmten Voraussetzungen zu Problemen kommt und die meisten nicht sehen, dass es diese Probleme überhaupt geben kann.
Wie gesagt, falls interesse besteht, mache ich mir etwas Arbeit und falte das auseinander. -
Also gut, auf die Gefahr hin daß ich 'Bahnhof' verstehe: Wie muss ich programmieren, um diese Falle zu vermeiden?
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!