Hi,
TEMP und TMP sind laut CMD identisch.
okay, das dachte ich mir - nur ist es im Moment nicht relevant, denn ...
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().
Schlecht. Das heißt, der IE führt das ActiveX-Control tatsächlich \*nicht\* im Kontext des angemeldeten Benutzers aus. Und somit hast du auch keine Möglichkeit, an Einstellungen für eben diesen angemeldeten Benutzer zu kommen. Alle Environment-Daten, die du so bekommst, sind "nur" die globalen, nicht benutzer-bezogenen Werte.
> Das Selbe ist bei "USERNAME", "TEMP" sowie "USERDOMAIN".
Nanu? [Gestern noch](https://forum.selfhtml.org/?t=210333&m=1433429) hast du gesagt, du würdest für TEMP den Wert %SystemRoot%\TEMP rauskriegen. Heute nicht mehr??
> Wenn ich aber an der Stelle "COMSPEC" eintrage, erscheint da folgendes: %SystemRoot%\System32\cmd.exe
Ja klar. Das ist ja auch ein systemabhängiger Wert, der üblicherweise für alle Nutzer identisch ist. In unixoiden Systemen ist es wohl gang und gäbe, dass verschiedene Benutzer verschiedene Shells benutzen; in Windows ist das eher selten.
> Da ist wieder dieses %SystemRoot% angegeben obwohl an dieser Stelle ja C:\Windows stehen müsste.
Warum "müsste"? Ich habe gerade kein laufendes Windows zur Hand, aber hast du schon mal versucht, dieses Term %systemroot% (Groß/Kleinschreibung ist bei Windows egal) einfach so zu verwenden, etwa beim Zugriff auf irgendwelche existierenden(!) Dateien? Soweit ich weiß, wird das von den Windows-Dateisystemfunktionen automatisch wieder aufgelöst. So hat man eine "anonyme" Möglichkeit, auf bestimmte Standardverzeichnisse zuzugreifen, ohne sie genau kennen zu müssen.
> 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?
Ja, sie würden alle nur das systemglobale TEMP-Verzeichnis sehen und benutzen. Das scheint einer der Nachteile des ActiveX-Konzepts zu sein.
> 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.
Nein. Von wo aus das Script gestartet wird, ist offensichtlich wurscht. Sobald der IE ein ActiveX-Control lädt und initialisiert, scheint dieses vom IE abgekoppelt im globalen, nicht nutzerbezogenen Kontext zu laufen - zumindest deutet hier alles darauf hin.
Und das würde bedeuten, dass die Methode nicht geeignet ist, um benutzerspezifische Daten herauszubekommen. Ich sagte es schon.
So long,
Martin
--
Hannes würfelt abends immer, ob er den Abend mit seiner Frau zuhause verbringt oder in die Kneipe geht. Wenn er eine 6 würfelt, geht er in die Kneipe.
Gestern musste er 37mal würfeln.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(