Romero: Zugriff auf den Temp-Ordner für jeden Nutzer

Beitrag lesen

Hallo

Sind TEMP und TMP beide gleich? Üblicherweise ja - Zumindest unterscheiden sie sich aber von dem Verzeichnis, das dein Script herausbekommt. Läuft dein Script vielleicht im SYSTEM-Kontext, anstatt im Kontext eines angemeldeten Benutzers?
Lass dein Script mal %userprofile% abfragen, dann sehen wir zumindest, in welchem Benutzerprofil es läuft.

TEMP und TMP sind laut CMD identisch.

Habe folgendes geschrieben und testen lassen:

  
			var WshShell = new ActiveXObject("WScript.Shell");  
			var WshSysEnv = WshShell.Environment("SYSTEM");  
			alert( WshSysEnv("USERPROFILE") );

Das Resultat war, dass nix ausgegeben wurde. Also ein "leeres" alert().
Das Selbe ist bei "USERNAME", "TEMP" sowie "USERDOMAIN". Wenn ich aber an der Stelle "COMSPEC" eintrage, erscheint da folgendes: %SystemRoot%\System32\cmd.exe

Da ist wieder dieses %SystemRoot% angegeben obwohl an dieser Stelle ja C:\Windows stehen müsste.

Du kannst prinzipbedingt nur die Einstellungen des Users abfragen, unter dem das abfragende Programm läuft. Wenn das Programm also unter einem anderen Benutzernamen (oder gar als SYSTEM) läuft, bekommt es dessen Environment zu sehen, und nicht unbedingt das, das du als interaktiver User hast.

Wie bekomme ich es raus? Sehe ja unter CMD das ich angemeldet bin. Aber wie ist es denn wenn mehrere Nutzer dieses Script gleichzeitig verwenden. Kann es da zu Problemen kommen?

Diesen Scriptausszug teste ich gerade in meinem eigenem Ordner, sprich nur ich führe dieses Script aus. Also müsste ja in dem Falle ja nur meine "TEMP" angezeigt werden.

Du hast eine amüsante Ausdrucksweise. Weder ist klar, wer "er" ist, noch warum er "in einen Ordner springen" soll". ;-)

Ok gelobe Besserung :)

LG Romero