Windows Installer utilisant un lecteur USB à des fins temporaires

14

Lors de l'installation d'applications construites autour de Windows Installer, il semblerait qu'il utilise souvent mon disque dur USB externe (lorsqu'il est connecté) comme emplacement temporaire pendant qu'il se développe et installe l'application (crée un dossier hors de la racine avec un nom GUID) . Y a-t-il un moyen de changer cela pour qu'il soit toujours par défaut sur un lecteur spécifique?

Cela semble être le cas sur Windows Vista et 7, pas sûr des versions précédentes.

EDIT: les variables d'environnement actuelles ressemblent à ceci:

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

EDIT: J'ai une drôle de suspicion qu'il utilise le lecteur avec le plus grand espace libre disponible.

Douglas Anderson
la source
Je ne sais pas s'il existe un moyen de le changer ou non, mais je vais vous expliquer pourquoi cela se produit. Il utilise le lecteur qui a plus d'espace libre pour sortir le répertoire temporaire avec les fichiers et comme vous le dites, son nom sera unique.
Xandy
2
Je crois que vous êtes sur quelque chose avec la modification "en utilisant le plus grand espace libre disponible". Mon expérience est totalement anecdotique, mais j'ai ajouté un disque dur de téraoctets à ma boîte Windows 7 peu de temps après avoir installé le système d'exploitation. Le lendemain, il a exécuté les mises à jour Windows. Je n'avais pas encore mis de fichiers sur le nouveau disque et après le redémarrage, j'ai trouvé un tas de fichiers temporaires qui y étaient cachés.
TechParadox

Réponses:

14

Je pense que Windows Installer utilise la %TMP%variable d'environnement. Vous voudrez peut-être vérifier cette valeur et voir si elle pointe vers la lettre de votre lecteur HD externe.

MISE À JOUR

Bizarre ... cela semble être une "fonctionnalité" de Windows Installer (pour utiliser le lecteur avec le plus d'espace libre). Je ne trouve pas d'option pour le désactiver. Je me demande si vous pouvez verrouiller le système par des autorisations / un indicateur en lecture seule ou quelque chose de similaire. Cela me dérange que Microsoft ne vous donne pas la possibilité de désactiver cette option.

2e MISE À JOUR

Ok - j'ai donc trouvé cet article sur la propriété ROOTDRIVE . À noter en particulier:

Si ROOTDRIVE n'est pas défini sur une ligne de commande ou créé dans la table des propriétés, le programme d'installation définit cette propriété. Lors d'une installation administrative, le programme d'installation définit ROOTDRIVE sur le premier lecteur réseau connecté sur lequel il peut écrire. S'il ne s'agit pas d'une installation administrative ou si le programme d'installation ne trouve aucun lecteur réseau, le programme d'installation définit ROOTDRIVE sur le lecteur local qui peut être écrit pour avoir l'espace le plus libre.

Andrew Flanagan
la source
Je ne pense pas. Mes variables% TEMP% et% TMP% pointent vers mon lecteur C: et les installateurs copient souvent des fichiers sur mon lecteur R :.
Snark
TEMP et TMP sont définis sur: C: \ Users \ <me> \ AppData \ Local \ Temp
Douglas Anderson
Je suis tombé sur une situation similaire. Je ne sais pas quel est le remède.
Vivek
Je comprends que si la propriété ROOTDRIVE n'est pas définie, les fichiers temporaires vont sur le disque avec la plus grande quantité d'espace libre. Mais la question la plus intéressante est pourquoi ces fichiers temporaires (!) Ne sont-ils pas automatiquement supprimés lorsque l'installation est terminée?
Erik
3

J'ai eu ce problème avec un disque dur externe utilisé exclusivement pour des photos personnelles et des vidéos personnelles. J'ai désactivé les autorisations de «suppression» pour tous les utilisateurs pour éviter la perte de données. Cependant, le lecteur a commencé à se remplir de fichiers tmp MSI. Tout retrait automatisé a été refusé, tout comme tout outil de nettoyage car (comme je l'ai mentionné), j'avais refusé les autorisations de suppression. Ma solution était de désactiver toutes les autorisations sur le lecteur cible pour tous les utilisateurs (à l'exception des privilèges «d'écriture» pour un utilisateur), empêchant le système d'exploitation d'écrire sur le lecteur en premier lieu. J'espère que cela t'aides.

aiguille
la source