Question Comment rendre le mappage de SUBST persistant lors des redémarrages?


Windows (XP ou version ultérieure) a-t-il un moyen intégré de créer des mappages de lecteurs persistants, comme ceux créés par SUBST? J'ai trouvé un outil tiers psubst. Est-il possible de le faire sans outils tiers?


155
2017-08-24 22:53


origine


Probablement pas le programme ne serait pas nécessaire ... - Ivo Flipse♦
C'est possible, car psubst est juste un fichier .bat qui froisse le registre. Voir la réponse de @ davr ci-dessous pour plus de détails. - Scott Stafford
Mise en garde de l'article de Wikipedia dans la réponse acceptée: "À partir de Windows Vista, les fichiers supprimés sont immédiatement supprimés définitivement et ne sont pas déplacés vers la «Corbeille». Avant Windows Vista (sous Windows XP, par exemple), les fichiers des «disques» substitués étaient déplacés dans la corbeille lorsqu'ils étaient supprimés." - JMD
@IvoFlipse, c'est une bonne hypothèse en général mais dans ce cas, c'est tout simplement faux. L'outil «tiers» est un fichier batch de 150 lignes qui fournit une belle interface pour modifier un registre et une entrée de nettoyage afin de respecter substles règles de la barre oblique, mais pointilleuses c'est juste un joli emballage. Vous pouvez le faire sans programme, et le fichier README pour psubst explique comment. Ou voir La réponse de davr ci-dessous où il cite le psubst README. - alexanderbird


Réponses:


bien Wikipedia mentionne:

C:\>SUBST /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

Vous pouvez donc associer des chemins avec des lettres de lecteur en utilisant subst. le Commande SUBST persistante (psubst) le logiciel semble être très pratique, et ils fournissent une solution pour l’exécuter depuis le démarrage:

https://code.google.com/p/psubst/#Inconstancy

Inconstance

Toutefois, le redémarrage d'un système détruit un disque virtuel. Que faire? UNE   le disque peut être créé après le démarrage. Mais que faire, quand un disque est   nécessaire sur les premières étapes d'un démarrage? Par exemple, pour exécuter des services?   Il existe une fonctionnalité système pour démarrer un disque virtuel à partir du système   enregistrement:

REGEDIT4 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] 
"Z:"="\\??\\C:\\Documents and Settings\\All Users\\Shared Documents"

Il suffit de créer un fichier texte avec l'extension .REG et courir   il. Lors du prochain démarrage d’un système, le disque virtuel sera   existe à la connexion Il doit définir un nom de disque et de chemin. Notez que   chaque barre oblique inverse dans le chemin est doublée.

Sous Windows, vous pouvez exécuter l'éditeur de registre comme suit:

  1. Démarrer, Exécuter... (ou frapper Gagner+R)
  2. Type: regedit
  3. Dans Windows Vista et versions ultérieures, UAC apparaîtra, cliquez sur "Oui".

132
2017-08-24 23:04



Ravi de savoir, même si je n’utilise pas subst plus Mais à l'époque où je le faisais, j'avais simplement un fichier de commandes dans mon dossier de démarrage qui faisait ces choses. - Joey
C'est génial. (Cela nécessite un redémarrage, FYI.) Notre arborescence de sources doit démarrer à partir d'une lettre de lecteur spécifique afin que nos PDB soient toujours alignés sur des ordinateurs différents. Ce paramètre de registre résout un problème que j'ai eu pendant des années avec un disque de base qui n'était pas présent avec les runas, ce qui est très gênant si vous devez (rarement) exécuter Visual Studio sous un compte administrateur. - Brian Reiter
Joey: Cette solution ne semble pas fonctionner sous Windows 7. Lors de l'exécution d'une application avec des privilèges d'administration, le lecteur substitué n'est pas visible par l'application. - Dave Jarvis
Merci pour la solution. Si vous tapez la variable dans RegEdit de manière interactive, ne doublez pas les barres obliques inverses. Autrement dit, créez une nouvelle variable de chaîne nommée "Z:" (sans les guillemets) et définissez la valeur sur la chaîne indiquée ci-dessus, sauf avec des barres obliques inverses simples. - Crispy
@L'avocat du diable, \?? est un répertoire virtuel dans l'espace de noms du gestionnaire d'objet NT. Tout d'abord, il vérifie les «périphériques» de session de connexion DOS (en réalité, les périphériques DOS sont des liens symboliques vers des périphériques NT, généralement situés dans \Device) puis le \Global?? Appareils DOS. Dans WinObj, vous trouverez les périphériques de session de connexion dans \Sessions\0\DosDevices\[logon ID]. Notez que les périphériques de session de connexion sont tous suivis dans la session 0 (services) pour chaque ID de connexion LSA. Ils ne sont pas corrélés avec les sessions de bureau. C'est pourquoi si vous mappez un lecteur en tant qu'administrateur limité, il n'existe pas lorsqu'il est élevé. c'est une connexion différente. - eryksun


L'installer à HKEY_CURRENT_USER a l'avantage d'avoir des configurations différentes pour chaque utilisateur. Je préfère coller la configuration de l'espace utilisateur tant qu'une dose de service système ne dépend pas de l'appareil.

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"F Drive"="subst F: D:\\mount\\db"
"G Drive"="subst G: D:\\mount\\log"

La source: http://networkadminkb.com/KB/a446/how-to-use-drive-letters-mount-points-the-same-disk-drive.aspx


71
2018-02-24 17:38



+1 Pour montrer comment faire plusieurs mappages dans un fichier reg. :-) - megaflop
+1 pour la facilité de ceci et expliquant également pourquoi HKEY_CURRENT_USER. :) - CAD bloke
+1 pour montrer une manière très élégante de le faire automatiquement sans lot dans le dossier de démarrage - dkellner
Peut également le faire depuis la ligne de commande (depuis le serveur XP / Windows 2000): reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "F Drive" /d "subst F: D:\x\db"  NB: il suffit d'échapper ici si c'est le dernier caractère de la commande subst, par ex. lorsque la cible est le répertoire racine: "subst F: D:\\"; un seul \ il serait interprété comme échappant le "le suivant. - stevek_mcc


Avez-vous même lu la page à laquelle vous vous êtes connecté? Vous n'avez pas besoin de l'outil tiers, vous pouvez le faire avec une simple entrée de registre, comme détaillé sur cette page.

Créez un fichier texte nommé 'mapdrive.reg' avec ces contenus:

REGEDIT4 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] 
"Z:"="\\??\\C:\\Documents and Settings\\All Users\\Shared Documents" 

Ensuite, il suffit de double-cliquer dessus pour configurer, aucun outil tiers requis.


40
2017-08-24 23:08



L'avantage de la clé de registre par rapport au fichier de commandes est qu'il définit le disque de base avant l'exécution de toute autre commande de démarrage, au cas où certains d'entre eux auraient besoin du disque de substitution pour fonctionner. - davr
@Ivo: Je l'appelle une peur saine de l'inconnu;) - Isxek
Si vous le faites dans regedit, veillez à utiliser des barres obliques inverses uniques. par exemple. \ ?? \ C: \ Some \ Directory - Droj


J'ai trouvé cela parce que je cherchais une amélioration par rapport à mes scripts de démarrage - ils fonctionnaient correctement, mais parfois exécutés après que les dossiers se soient écrasés au démarrage car mon disque n'était pas encore mappé.

Tout d'abord, j'ai édité le registre, mais je n'ai pas réussi à le faire fonctionner. Cependant, je suis tombé sur cette alternative, qui, bien qu’elle n’utilise pas de substance, réponde à ma question: «Comment faire en sorte que la mise en correspondance de SUBST soit persistante lors des redémarrages? N'utilisez pas subst ... (insérez le nom d'ordinateur approprié et le nom de chemin d'accès):

net use u: "\\ nom_ordinateur \ c $ \ pathName" / persistant: oui

Je l’ai adapté de la suggestion de Hank Arnold à cette discussion sur la cartographie des disques locaux. J'avais deviné que \\ myComputerName \ c pourrait fonctionner, mais je ne savais pas appliquer le $.

Avant d'essayer la commande "net use", essayez de naviguer jusqu'à

\\ nom_ordinateur \ c $
 pour vous assurer que vous avez 'computerName' correct.


20
2018-01-11 23:34



Excellente solution, mais avec deux problèmes: 1) ce n'est pas visible pour le système de fichiers local, 2) les autorisations ... - ashes999
si tu utilises \\localhost\c$\path\to\thing il est portable entre les machines (ou les mises à niveau qui changent le nom de l'ordinateur). Un inconvénient de l'utilisation d'un lecteur mappé sur Win7 + réside dans le fait que différentes stratégies de sécurité s'appliquent aux lecteurs réseau par rapport au local, et que certains programmes refusent simplement de s'exécuter sur un lecteur mappé. - matt wilkie
Il est visible par le système de fichiers et visible par le système de fichiers local - il est marqué comme un lecteur réseau, tout comme certains lecteurs sont marqués comme des lecteurs amovibles. Cela ne rend pas ces disques indisponibles ou non visibles par le système de fichiers local - cela en fait des disques réseau / amovibles dans le système de fichiers local. - user165568
Lors des tests que j'ai effectués pour un problème de performances (il y a quelques années), l'utilisation du lecteur réseau monté (en local) est également plus lente que l'utilisation directe du système de fichiers (ou subst, etc.). Ce n'est pas une énorme différence pour les petits fichiers ou une utilisation occasionnelle - pas comme passer sur le réseau réel vers un autre «serveur» - mais c'est important. - HerbM


Déposez un fichier de commandes dans votre dossier de démarrage qui effectue tous les SUBST que vous voulez faire.


7
2017-08-24 23:02





Étant donné que le PSubst original a certaines limitations et semble être conclu par l'auteur, j'ai dû coder une nouvelle version pour mes besoins, résoudre certains problèmes et ajouter des fonctionnalités et de la flexibilité.

Vérifiez ici le fichier de commandes PSubst version 3

https://github.com/cyberponk/psubst

Compatible avec Windows 7, Windows 8, Windows 10, Windows Server 2012

Remarque: Cette œuvre n’a pas l’intention de démériser l’auteur initial et n’a été créée que par nécessité réelle, comme suit:

  • En tant qu'administrateur newtork, j'ai constamment besoin de disques réseau SUBST et de jouer avec différents utilisateurs du réseau.

  • Comme tout le monde n’est pas un expert Windows, j’ai pensé que l’élévation automatique de l’administrateur avec la gestion des erreurs serait utile, en fonction des commentaires que je lisais sur le Web.

  • Comme certaines personnes ont eu des problèmes avec l'ordre des arguments, j'ai pensé qu'il serait préférable que le script fonctionne avec des arguments dans n'importe quel ordre.

Je ne me souviens pas de toutes les fonctionnalités ajoutées, mais chaque inclusion a été faite uniquement par nécessité. Je partage le code pour que d'autres personnes ne rencontrent pas les problèmes que j'ai rencontrés. Il n'y a pas d'autre intention que de partager et d'aider.


5
2018-06-11 00:29



S'il vous plaît, dites "A" dites "B". Vous avez siac que le psubst original a beaucoup de problèmes - indiquez-les s'il y en a. En revanche, psubst n'est pas abandonné. Il vient d'atteindre la limite de son développement. L'outil original suit une philosophie très simple: faire quelque chose et bien faire. Il n'est pas surchargé avec des fonctionnalités supplémentaires telles que la gestion avec le contrôle de compte d'utilisateur et la création de code vbs supplémentaire pour faire quelque chose de plus. Une chose peut être faite par-dessus le code original - quelques modifications cosmétiques pour simplifier le code et améliorer la lisibilité. - jsxt
Édité, s'il vous plaît examiner. UAC et vbs sont destinés à l'élévation automatique de l'administrateur. Je ne suis pas d'accord sur le commentaire "limite de développement", car toutes les modifications que j'ai apportées devaient rendre l'utilisation encore plus simple et facile après avoir rencontré plusieurs problèmes avec PSUBST. Je n'ai pas l'intention de critiquer l'auteur original, donc je ne vais pas lister les problèmes, mais j'ai plutôt créé des solutions. J'ai en fait proposé d'ajouter mes éditions dans la branche github originale, mais j'ai été refusé, alors j'ai dû créer ma propre branche. - cyberponk
Merci pour vos commentaires rapides et détaillés. Très probablement, j'ai besoin de regarder de plus près votre développement. - jsxt
Mon chapeau est à toi; J'ai passé mon temps dans les tranchées de script par lots, et je sais à quel point c'est douloureux. Ce code a l'air très bien. - SilverbackNet


En fait, l'outil PSUBST joint deux manières différentes de créer des lecteurs substitués dans Windows. Si vous souhaitez avoir des lecteurs persistants entre les démarrages, vous pouvez exécuter cet outil une fois pour chaque lecteur dont vous avez besoin. Une autre méthode consiste à utiliser la méthode proposée par "davr". L'outil PSUBST fait juste la même chose mais permet de le rendre plus facile.


2
2017-09-23 18:20





J'aime Visual Subst

Facilite les choses


0
2017-12-14 11:09