45844
Goto Top

Auslesen der Oderumleitungen (u.a. Eigene Dateien)

Per VBScript / WMI auslesen

Hi,

ich würde gerne die Ordnerumleitungen (von "Eigene Dateien" / "MyDocuments" und den restlichen Ordnern) auf Client-PCs per VBScript / WMI auslesen.

Beim Googlen und hier wurde ich aber leider nicht fündig und bekomm's einfach nicht gebacken. Kann mir bitte jemand helfen?

Danke und Grüße,

Marc

Content-Key: 55059

Url: https://administrator.de/contentid/55059

Printed on: April 18, 2024 at 14:04 o'clock

Mitglied: 45426
45426 Mar 26, 2007 at 11:19:07 (UTC)
Goto Top
Hat dein Betriebssystem auch einen Namen?
Member: bastla
bastla Mar 26, 2007 at 11:25:09 (UTC)
Goto Top
Hallo Meanmachine!

Genügen Dir die "SpecialFolders"?

HTH
bastla
Mitglied: 45521
45521 Mar 26, 2007 at 12:17:35 (UTC)
Goto Top
Hi,

danke für eure Antworten!

@45426:
Dachte es wäre klar, daß es sich um Windows handelt (das BS von dem ich es auslesen will ist 2000 oder XP - abhängig vom Rechner).

@bastla:
Ich habe die Daten aus deinem Link mal ausprobiert. Allerdings wurde mir da nur der Pfad angegeben, wo die Eigenen Dateien auf dem lokalen Rechner liegen. Ich müßte aber wohl eher wissen, wo die auf dem Server abgespeichert werden (die liegen ja nicht lokal, sondern werden auf jeden PC, an dem man sich anmeldet, mit übernommen).

Danke und Grüße,

Marc
Mitglied: 45426
45426 Mar 26, 2007 at 12:24:01 (UTC)
Goto Top
Ich denke auch, nämlich dass zu einer systemabhängigen Frage die Angabe des verwendeten Betriebssystems gehört.


Die richtigen Links findest du auch in der Registry unter

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

bzw. im Environment.
Mitglied: 45521
45521 Mar 26, 2007 at 14:44:29 (UTC)
Goto Top
Danke mal für die Antwort!

Habe den Key auch schon gefunden, allerdings war ich der Meinung, ich würde in dem entsprechenden Key irgendwelche Pfade auf Server finden... Wenn du das aber auch postest, dann werde ich mich doch nochmal schlau machen, wo die genau liegen bzw. ob das die richtigen Pfade sind die ich suche.

Danke und Grüße,

Marc
Mitglied: 45521
45521 Mar 27, 2007 at 09:15:49 (UTC)
Goto Top
Hi nochmal,

so, also das habe ich abgeklärt. Der Key (\..\User Shell Folders\) beinhaltet die nötigen Infos.

Nun hab ich aber noch ein Problem: Ich weiß zwar, wie ich nun die Werte einzelner Schlüssel (z.B. Personal) auslesen kann, aber nicht, wie ich zuerst mal alle in "User Shell Folders" auslese und dann auf die einzelnen Werte zugreifen kann. Daß ich also quasi eine Array habe in dem dann alls Schlüssel drin stehen und die ich dann per FOR EACH-Schleife auslesen kann.

Könnte mir da bitte jemand weiterhelfen?

Vielen Dank und Grüße,

Marc
Mitglied: 45426
45426 Mar 27, 2007 at 09:31:05 (UTC)
Goto Top
Eingabeaufforderung:

reg query "hkcu\software\microsoft\windows\currentversion\explorer\user shell folders" > usf.txt

Wenn man statt "User Shell Folders" Shell Folders" nimmt, hat man die realen Pfadangaben und braucht %USERPROFILE% nicht zu übersetzen.
Mitglied: 45521
45521 Mar 27, 2007 at 10:08:18 (UTC)
Goto Top
Danke für die Antwort!

Sorry, wenn ich mich doof anstelle, aber brauch ich um das "reg query ..." noch irgendwas um es ausführen zu können (bzw. geht das überhaupt in einem VBScript - hab das bis jetzt immer nur in Verbindung mit CMD gelesen)?

Ich würde gerne alle Werte, die in dem User Shell Folders (oder Shell Folders - kann man ja bei Bedarf ändern) liegen in ein Array schreiben. Grund ist, daß ich die an einen String anhängen will (hab ja noch etliche andere Werte, die ich vorher schon ausgelesen habe), der dann später in eine Excel-Tabelle geschrieben wird.

Wenn ich so auf den Schlüssel zugreife, ging es nicht:

Dim test()
RegPfad = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\"
test = WshShell.RegRead(RegPfad)

Und zwar kann angeblich User Shell Folders nicht geöffnet werden. Hänge ich aber noch Personal hinten dran (um die MyDocuments auszulesen), klappt alles einwandfrei.

Danke und Grüße,

Marc
Mitglied: 45521
45521 Mar 27, 2007 at 10:18:56 (UTC)
Goto Top
Achso: Vielleicht geht es ja auch mit WMI (wäre ich auch nicht abgeneigt, habe aber bisher noch keine richtige Klasse dafür gefunden).
Mitglied: 45521
45521 Mar 27, 2007 at 10:42:00 (UTC)
Goto Top
Hmm, danke! Aber viel bringen tut mir das nicht - werde mir kein ganzes Buch durchlesen wegen einer Funktion und Anfängerkenntnisse habe ich ja (wie gesagt, Remotzugriff, per WMI Daten auslesen und dann in Excel-Tabelle schreiben funktioniert ja alles).

Naja. Trotzdem danke mal!
Mitglied: 45426
45426 Mar 27, 2007 at 10:45:54 (UTC)
Goto Top
Wenn du das Programieren erlernen, wirst du wohl nicht daran vorbei kommen, dir entsprechende Kenntnisse selbst anzueignen.

Einen Programmierlehrgang werde ich dir jedenfalls nicht bieten.
Mitglied: 45521
45521 Mar 27, 2007 at 10:59:18 (UTC)
Goto Top
Nee. Erwartet ja auch keiner. Ich habe auch schon nach einer "Referenz" für VBScript gesucht und eben dieses reg query. Allerdings bekomme ich über google immer nur eben einen solchen Codeschnipsel, der bei mir aber definitiv nicht geht ("Expected End Of Statement").
Member: bastla
bastla Mar 27, 2007 at 11:02:10 (UTC)
Goto Top
Hallo Meanmachine!

Um vielleicht doch noch einmal auf die "Special Folders" zurückzukommen ...

Wenn Du aus der Tabelle ein Array aufbaust und das mit dem Beispielcode in einer Schleife durchgehst ...

Grüße
bastla
Member: Biber
Biber Mar 27, 2007 at 11:07:23 (UTC)
Goto Top
...wobei es zu dieser konkreten Fragestellung wirklich tonnenweise Beispielskripte auch mit Schnipsel-Download gibt.
Eines in epischer Breite ist hier www.codeproject.com,
~zig andere sind unter "VbScript SpecialFolders" über jede Suchmaschine zu finden.
Einige Treffer dabei zeigen dabei auch übrigens auf dieses Forum.

Und da sich die Lösung darauf reduziert, dass die ganze Mimik im Wesentlichen aus einer Zeile
dim wshShell : Set wshShell = Createobject("WScript.Shell")
..und einem Dutzend Zeilen der Art:
myArray[x] = wshShell.SpecialFolders("FestBeiM$EingebrannterNameDesFolders")
[... Namen sind:
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
Startup
Templates
...]
besteht, von daher erscheint der zu beschreitende Weg doch recht klar, oder?
Einen VBS/WMI-Befehl, der Dir ein GetAllSpecialsFoldersAsCollection() macht, gibt es IMHO nicht.
Den schreibst Du nämlich gerade...

Gruss
Biber
Mitglied: 45521
45521 Mar 27, 2007 at 12:54:11 (UTC)
Goto Top
Hi ihr 2,

danke, das ist doch mal eine handfeste Antwort!

Hab mir da jetzt was zusammengebastelt und funktioniert so weit (auch wenn ich's komisch finde, daß ich nicht auf Cache, Cookies,... zugreifen kann).

Danke und Grüße,

Marc
Member: bastla
bastla Mar 27, 2007 at 13:50:55 (UTC)
Goto Top
Hallo Meachmachine!

Wenn Du die im oben verlinkten Artikel beschriebene "Namespace"-Variante verwendest, kannst Du mit "&H20& / Local Settings\Temporary Internet Files" und "&H21& / Cookies" auch auf diese Pfade zugreifen.

Grüße
bastla
Mitglied: 45521
45521 Mar 27, 2007 at 16:01:38 (UTC)
Goto Top
Hi bastla!

Vielen Dank für den Tipp! Werde ich morgen im Geschäft gleich mal ausprobieren...

Danke und Grüße,

Marc