Windows Installer mit USB-Laufwerk für temporäre Zwecke

14

Bei der Installation von Anwendungen, die auf Windows Installer basieren, wird häufig die externe USB-Festplatte (wenn diese verbunden ist) als temporärer Speicherort verwendet, während die Anwendung erweitert und installiert wird (es wird ein Ordner außerhalb des Stammverzeichnisses mit einem GUID-Namen erstellt). . Gibt es eine Möglichkeit, dies zu ändern, sodass standardmäßig immer ein bestimmtes Laufwerk ausgewählt wird?

Dies scheint unter Windows Vista und Windows 7 der Fall zu sein, da wir uns nicht sicher sind, ob frühere Versionen verfügbar sind.

BEARBEITEN: Aktuelle Umgebungsvariablen sehen folgendermaßen aus:

TEMP=C:\Users\<me>\AppData\Local\Temp
TMP=C:\Users\<me>\AppData\Local\Temp

EDIT: Ich habe einen komischen Verdacht, dass es das Laufwerk mit dem größten verfügbaren freien Speicherplatz verwendet.

Douglas Anderson
quelle
Ich weiß nicht, ob es eine Möglichkeit gibt, dies zu ändern, aber ich sage Ihnen, warum dies passiert. Es verwendet das Laufwerk, das mehr freien Speicherplatz hat, um das temporäre Verzeichnis mit den Dateien auszugeben, und wie Sie sagen, wird sein Name eindeutig sein.
16.
2
Ich glaube, Sie haben etwas mit dem "Verwenden des größten verfügbaren freien Speicherplatzes" zu tun. Meine Erfahrung ist völlig ungewöhnlich, aber ich habe meiner Windows 7-Box kurz nach der Installation des Betriebssystems eine Terabyte-Festplatte hinzugefügt. Gleich am nächsten Tag wurden Windows-Updates ausgeführt. Ich hatte noch keine Dateien auf dem neuen Laufwerk abgelegt und nach dem Neustart fand ich eine Reihe von temporären Dateien dort.
TechParadox

Antworten:

14

Ich glaube, dass der Windows Installer die %TMP%Umgebungsvariable verwendet. Möglicherweise möchten Sie diesen Wert überprüfen, um festzustellen, ob er auf den Buchstaben Ihres externen HD-Laufwerks verweist.

AKTUALISIEREN

Seltsam ... dies scheint eine "Funktion" von Windows Installer zu sein (um das Laufwerk mit dem meisten freien Speicherplatz zu verwenden). Ich kann keine Option zum Deaktivieren finden. Ich frage mich, ob Sie das System durch Berechtigungen / Nur-Lese-Flag oder ähnliches sperren können. Es stört mich, dass Microsoft Ihnen keine Option zum Deaktivieren dieser Option bietet.

2. UPDATE

Ok - so fand ich diesen Artikel über die ROOTDRIVE-Eigenschaft . Besonders hervorzuheben:

Wenn ROOTDRIVE nicht in einer Befehlszeile festgelegt oder in der Eigenschaftentabelle erstellt ist, legt das Installationsprogramm diese Eigenschaft fest. Während einer Administratorinstallation legt das Installationsprogramm ROOTDRIVE auf das erste verbundene Netzlaufwerk fest, das beschrieben werden kann. Wenn es sich nicht um eine Administratorinstallation handelt oder wenn das Installationsprogramm keine Netzwerklaufwerke findet, legt das Installationsprogramm ROOTDRIVE auf das lokale Laufwerk fest, auf dem der meiste freie Speicherplatz verfügbar ist.

Andrew Flanagan
quelle
Ich glaube nicht. Meine Variablen% TEMP% und% TMP% verweisen auf mein Laufwerk C: und die Installationsprogramme kopieren häufig Dateien auf mein Laufwerk R :.
Snark
TEMP und TMP sind auf C: \ Users \ <me> \ AppData \ Local \ Temp eingestellt
Douglas Anderson,
Ich bin auf eine ähnliche Situation gestoßen. Ich bin mir nicht sicher, was das Mittel ist.
Vivek
Ich verstehe, dass, wenn die ROOTDRIVE-Eigenschaft nicht festgelegt ist, die temporären Dateien auf der Festplatte mit der größten Menge an freiem Speicherplatz abgelegt werden. Die interessantere Frage ist jedoch, warum diese temporären (!) Dateien nach Abschluss der Installation nicht automatisch entfernt werden.
Erik
3

Ich hatte dieses Problem mit einer externen Festplatte, die ausschließlich für persönliche Fotos und Heimvideos verwendet wurde. Ich habe die Löschberechtigungen für alle Benutzer deaktiviert, um zu verhindern, dass Daten verloren gehen. Das Laufwerk begann sich jedoch mit MSI-tmp-Dateien zu füllen. Jedes automatische Entfernen wurde abgelehnt, ebenso wie jedes Reinigungswerkzeug, da ich (wie erwähnt) die Löschberechtigungen abgelehnt hatte. Meine Lösung bestand darin, alle Berechtigungen auf dem Ziellaufwerk für alle Benutzer zu deaktivieren (mit Ausnahme der Schreibrechte für einen Benutzer), um zu verhindern, dass das Betriebssystem überhaupt auf das Laufwerk schreibt. Hoffe das hilft.

Nadel
quelle