bei serverseitig gespeichertem Profil falscher Pfad (VBA)

Björn @, Freitag, 13.11.2015, 11:17 (vor 1489 Tagen)

Im vba-tutorial.de wird in der Funktionsreferenz-Interaktionen die Umgebungsvariable per Environ ausgelesen, was bei mir mit einem "Serverseitig gespeicherten Profil" zu falschen Angaben führt, zumindest bei der Angabe "USERPROFILE".
Ich bekomme dort als Benutzer Me den folgenden Pfad C:\Users\Me .
Da mein Profil aber definiv auf dem Server gespeichert wird,ist das Laufwerk "C" auf jeden Fall falsch.

Wie komme ich an den richtigen Pfad?

bei serverseitig gespeichertem Profil falscher Pfad

PhilS ⌂, Samstag, 14.11.2015, 15:56 (vor 1487 Tagen) @ Björn

Was wäre denn der richtige Pfad?
Meines Wissens werden severseitige Profile beim Login auf die Lokale Maschine kopiert und sind dann, üblicherweise, unter genau dem Pfad C:\Users zu finden.

bei serverseitig gespeichertem Profil falscher Pfad

Martin Asal @, Samstag, 14.11.2015, 16:29 (vor 1487 Tagen) @ Björn

Hallo Björn,

tja, die Angabe, die dir VBA liefert, ist jedenfalls korrekt. Die Umgebungsvariable USERPROFILE (und andere, z.B. USERNAME) werden ja vom Server angelegt.

Wie komme ich an den richtigen Pfad?

Ich glaube, da bist du hier falsch. Dein Serveradmin kann die Frage bestimmt beantworten. Das ist ja eine Frage nach den Servereinstellungen.

Martin

bei serverseitig gespeichertem Profil falscher Pfad

Björn @, Donnerstag, 19.11.2015, 08:41 (vor 1483 Tagen) @ Björn

Vielen Dank für Eure Antworten.
Von der Theorie kann ich da zustimmen, das ein "serverseitig gespeichertes Profil" immer mit dem C:\Users Verzeichnis synkronisiert wird.
Ich bin hier leider selber der Administrator und Programmierer in einer Person.
Eventuell bin ich dann hier mit der Frage dann doch nicht ganz richtig.

Möchte aber trotzdem noch mal etwas weiter ausholen:

Folgende Situation liegt auch noch vor.
Unter Windows 7 kann man unter Eigenschaften von "Biliotheken->Domukente" einstellen welcher der Speicherort sein soll und diesen Speicherhort habe ich bei dem Benutzer "Me"(mit dem Serverseitig gespeicherten Profil) ein Pfad auf dem Serverlaufwerk G gegeben.

Nun speichert der Benutzer eine Datei unter "Biliotheken->Domukente" und ich wundere mich, warum das VB-Skript mit wshShell.SpecialFolders("MyDocuments") diese Datei nicht finden kann. Wenn ich mir das Ergebnis ausgeben lasse von wshShell.SpecialFolders("MyDocuments") bekomme ich den standart Pfad auf C und nicht wie zuvor beschrieben den Pfad auf G.

Hat also wahrscheinlich garnichts mit dem Serverseitig gespeicherten Profil zu tun.
Aber wie komme ich allgemeingültig an den Speicherort von "Biliotheken->Domukente"?

bei serverseitig gespeichertem Profil falscher Pfad

Martin Asal @, Donnerstag, 19.11.2015, 13:47 (vor 1482 Tagen) @ Björn

Ich wundere mich, wenn ich "wshShell" lese. Geht es dir wirklich um VBA, und nicht etwa um VBScript oder VB?

Wenn doch VBA:

  • Welche Verweise hast du gesetzt, um wshShell einzubinden?
  • Um welche Applikation genau geht es bei dir?

Die Application-Objekte bringen normalerweise irgendwo etwas mit, was für deine Belange vielleicht schon ausreicht. In Excel z.B. ThisWorkbook.Path oder Access CurrentProject.Path (es gibt aber auch noch andere Objekte mit einer Path-Eigenschaft). Jedenfalls fällt mir erstmal nichts ein, wo ich wshShell in VBA bräuchte.

Martin

bei serverseitig gespeichertem Profil falscher Pfad

Björn @, Dienstag, 24.11.2015, 11:09 (vor 1478 Tagen) @ Martin Asal

Im Access 2013 habe ich da folgende Ereignisprozedur für den "knopf" hinterlegt:

Private Sub knopf_Click()
 
 Dim wshShell:   Set wshShell = CreateObject("WScript.Shell")
 Debug.Print wshShell.SpecialFolders("MyDocuments")
 
End Sub

Und bekomme dann im Direktbereich die Pfadangabe.
aktive Verweise sind folgende:

  • Visual Basic For Applications
  • Micosoft Access 15.0 Object Libary
  • OLE Automation
  • Microsoft Office 15.0 Access database engine Object Library

Ist das nun VBA oder VBScript oder VB?

bei serverseitig gespeichertem Profil falscher Pfad

Martin Asal @, Dienstag, 24.11.2015, 15:26 (vor 1477 Tagen) @ Björn

Im Access 2013

OK, dann ist es also VBA in Access.

Mit wshShell kenne ich mich kaum aus, offen gesagt, hatte ich da noch nie Bedarf. Im übrigen verwendest du Late Binding (falls du Early Binding nutzen wolltest, müsstest du einen Verweis auf "Windows Script Host Object Model" setzen).

Probiere mal folgenden Code, vielleicht findest du etwas im Ergebnis, was dir weiterhilft:

Sub wsh()
Dim i As Integer
Dim wsh As Object
 
Set wsh = CreateObject("WScript.Shell")
 
For i = 0 To wsh.SpecialFolders.Count - 1
    Debug.Print i, wsh.SpecialFolders(i)
Next
 
End Sub

Martin

bei serverseitig gespeichertem Profil falscher Pfad

Björn @, Dienstag, 08.12.2015, 13:49 (vor 1463 Tagen) @ Martin Asal

Martin, Dein Code liefert leider nur Pfade vom Laufwerk "C".

Habe nun noch mal Tests gemacht von einem User-Profil mit normalem lokal gespeichertem Profil und dort den Speicherort für Dokumente mal verändert auf das Laufwerk "G".

Auch hier das gleiche Ergebnis.
Es hat also überhaupt nichts mit dem Serverseitig gespeicherten Profil zu tun.
Allein die Tatsache, das sich der User den Speicherort für "Dokumente" verbiegt liefert mit den zuvorgenannten Skripten eine falsche Pfadangabe.
Liegt vielleicht auch an der Tatsache, dass man bei den Eigenschaften für Dokumente auch noch viele andere Pfade dazu eintragen kann.
Aber der Speicherort hat nur einen Pfad und den würde ich gerne per VBA heraus bekommen.

bei serverseitig gespeichertem Profil falscher Pfad

Martin Asal @, Mittwoch, 09.12.2015, 08:58 (vor 1463 Tagen) @ Björn

Aber der Speicherort hat nur einen Pfad und den würde ich gerne per VBA heraus bekommen.

Je mehr ich darüber nachdenke, desto mehr bin ich der Überzeugung, dass du mit WScript.Shell völlig auf dem Holzweg bist. Kennst du überhaupt Environ? Die folgende Sub gibt dir alle Umgebungsvariablen:

Sub env()
Dim i As Integer
 
Do
    i = i + 1
    Debug.Print i, Environ(i)
Loop While Len(Environ(i))
 
End Sub
 


Ich glaube ferner, dass du nicht USERPROFILE, sondern HOMEDIR und HOMEPATH brauchst:

Debug.Print environ("Homedrive") & environ("Homepath")

Martin

bei serverseitig gespeichertem Profil falscher Pfad

Björn @, Donnerstag, 10.12.2015, 15:09 (vor 1461 Tagen) @ Martin Asal

leider liefern environ("Homedrive") und environ("Homepath") in meinem Fall keinen Hinweis auf den eingestellen Speicherort für "Biliotheken->Dokumente"
Homedrive liefert "C:" und Homepath liefert "\Users\Me" und bei dem Schleifendurchlauf gibt es da leider nichts was weiter hilft.

bei serverseitig gespeichertem Profil falscher Pfad

Martin Asal @, Freitag, 11.12.2015, 08:57 (vor 1461 Tagen) @ Björn

Sorry, langsam bin ich mit meinem Latein am Ende, schließlich verlassen wir hier den Berich VBA. Bei mir gibt environ("Homepath") etc jedenfalls genau das Gewünschte zurück, und nach meinem Verständnis der Umgebungsvariablen sollte es das ja auch.

Habe mal eben kurz gegoogelt. Eventuell sind deine Umgebungsvariablen nicht korrekt eingestellt, lies mal das hier:

http://stackoverflow.com/questions/606483/what-is-the-meaning-of-these-windows-envirome...

http://itknowledgeexchange.techtarget.com/itanswers/change-homedrive-homepath-in-win7/

Martin

bei serverseitig gespeichertem Profil falscher Pfad

Björn @, Freitag, 11.12.2015, 10:02 (vor 1461 Tagen) @ Martin Asal

Ich denke "Homepath" liefert auch bei mir das richtige, wenn ich nur den Pfad des Benutzerverzeichnisses haben will, nur den darunter eingehängten Speicherpfad für Biliothek "Dokumente" wird dabei nicht mit angezeigt und der liegt ja sogar auf einen ganz anderen Laufwerk. Ich weiß halt nicht wie Windows das intern regelt.
Bei Linux wäre das mit einem Symbolischen Link vergleichbar.

Ich danke Dir für Deine Bemühungen, aber dies Thema scheint wohl wirklich aus zu arten.
Meine Lösung zu dem Problme ist nun diese, dass ich bei meiner Kollegin einfach den Speicherpfad wieder auf den Standart zurückgestellt habe und mein Program dann auch über environ("Homepath") dann im richtigen Verzeichnis findet, was ich suche. Ob es Ihr nun passt oder nicht. ;-)

RSS-Feed dieser Diskussion
powered by my little forum