
45844
26.03.2007, aktualisiert am 27.03.2007
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 55059
Url: https://administrator.de/forum/auslesen-der-oderumleitungen-u-a-eigene-dateien-55059.html
Ausgedruckt am: 23.04.2025 um 05:04 Uhr
18 Kommentare
Neuester Kommentar

Hat dein Betriebssystem auch einen Namen?

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

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.
Die richtigen Links findest du auch in der Registry unter
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
bzw. im Environment.

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

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

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

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

Achso: Vielleicht geht es ja auch mit WMI (wäre ich auch nicht abgeneigt, habe aber bisher noch keine richtige Klasse dafür gefunden).

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!
Naja. Trotzdem danke mal!

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.
Einen Programmierlehrgang werde ich dir jedenfalls nicht bieten.

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").
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
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
...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
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
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

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

Hi bastla!
Vielen Dank für den Tipp! Werde ich morgen im Geschäft gleich mal ausprobieren...
Danke und Grüße,
Marc
Vielen Dank für den Tipp! Werde ich morgen im Geschäft gleich mal ausprobieren...
Danke und Grüße,
Marc