Kopieren Sie den UNC-Netzwerkpfad (nicht den Laufwerksbuchstaben) für Pfade auf zugeordneten Laufwerken aus Windows Explorer

274890
Ernest Mueller

Ich möchte häufig Windows-Netzwerkpfade per E-Mail oder Chat mit anderen Mitarbeitern in meinem Team teilen. Wir haben hier viele zugeordnete Laufwerke, sowohl von uns selbst als auch von unseren IT-Overlords. Ich möchte in der Lage sein, den vollständigen Pfad (nicht den Laufwerksbuchstaben) aus Windows Explorer zu kopieren, um ihn an die Benutzer zu senden.

Beispiel: Ich habe eine Datei in meinem Laufwerk "Q:", \\ cartman \ users \ emueller, und ich möchte einen Link zu der darin enthaltenen Datei "foo.doc" an Kollegen senden. Wenn ich den Dateipfad kopiere (Umschalt + Rechtsklick, "Als Pfad kopieren"), wird der Dateiname "Q: \ foo.doc" in der Zwischenablage angezeigt. Dies ist nicht hilfreich für andere, die \\ cartman \ users \ emueller \ foo.doc benötigen, um den Link verwenden zu können.

Im Explorer kennt es den vollständigen Pfad eindeutig - in der Adressleiste sehe ich "Computer -> emueller (\\ cartman \ users) (Q :) ->". Gibt es eine Möglichkeit zu sagen "Hey Mann, kopiere diesen Pfad als Text mit dem \\ cartman \ users \ emueller und nicht dem Q: darin?"

Ich weiß, ich könnte nur zugeordnete Netzwerkstandorte anstelle der zugeordneten Laufwerke für diejenigen einrichten, die ich persönlich eingerichtet habe, und dieses Problem vermeiden. Die meisten der zugeordneten Laufwerke wie die Freigabe der "Benutzer" stammen jedoch aus unserer Unternehmens-IT-Richtlinie und können dies nicht überschrieben werden Ich könnte einfach einen separaten Netzwerkstandort erstellen und dann mein Laufwerk Q: ignorieren, aber das ist unpraktisch (und sie tun es, damit sie Konten zwischen Servern verschieben können). Sicher, mein per E-Mail versendeter Pfad könnte eventuell brechen, weil ich die Laufwerksbuchstabe verliere, aber das ist in Ordnung für mich.

77
Wenn Sie in einer gesperrten Unternehmensumgebung arbeiten, in der Sie keine Anwendungen von Drittanbietern installieren und / oder auf die Registrierung zugreifen können, funktioniert diese Lösung ... http://superuser.com/a/704374/46099 Richard vor 10 Jahren 0

17 Antworten auf die Frage

47
Jimbo

Vielleicht ein weiter Weg, aber ein Cmd-Fenster öffnen. Dann machnet use > filename

Dann öffnen Sie den Dateinamen und Sie können den Pfad erhalten:
Ex:

C:\Users\me\net use > drives.txt

Öffnung drives.txt

New connections will be remembered. Status Local Remote Network ------------------------------------------------------------------------------- H: \\server\c\proj\net Microsoft Windows Network 

Kann \\server\c\prog\netvon der Datei zu Ihrer Verwendung kopieren .

Hoffe das hilft.

simpel und einfach. Alle anderen Lösungen im Thema sind sehr umfangreich ... radistao vor 10 Jahren 9
Oder überspringen Sie einfach die "> drives.txt" und kopieren Sie den ausgegebenen Pfad direkt aus dem Terminalfenster. DarenW vor 10 Jahren 8
Simple & easy. Win. CAD bloke vor 10 Jahren 1
Mit msysgit / bash an Ihren Fingerspitzen ist dies viel einfacher als die anderen Lösungen. Großartig! Jonas Byström vor 10 Jahren 0
41
i_saw_drones

Ich hatte genau das gleiche Problem - nicht jeder hatte die gleichen zugeordneten Laufwerke wie ich oder die gleichen Buchstaben.

Nach langem Suchen fand ich auf GitHub ( https://pathcopycopy.github.io/ ) eine Kontextmenüerweiterung namens Path Copy Copy, die eine erweiterte Version einer ähnlichen, älteren Erweiterung (Pathcopy) ist, die einige Optionen zum Kopieren von Pfaden bietet als Text, einschließlich eines für UNC-Pfade - Beispiele für die verfügbaren Optionen werden unten gezeigt:

Path Copy Context Menu example

Sie können auch festlegen, dass nur eine oder zwei Zeilen im Basiskontextmenü angezeigt werden. Beispielsweise können Sie zwei Zeilen verwenden: langen Pfad kopieren und langen UNC-Pfad kopieren. Dies ist ideal für E-Mails an Benutzer in Ihrem Unternehmen, die Zugriff auf einen Netzwerkpfad haben. Wenn sie die gleiche Netzwerkzuordnung wie Sie haben, können Sie die erste auswählen. Andernfalls können Sie die zweite Option verwenden.

Update : Ab Version 12.0 ist auf der oben genannten Site ein neues "portables" Installationsprogramm verfügbar, das nur für den aktuellen Benutzer in den AppData\LocalOrdner installiert wird . Ich habe dies nicht versucht, aber es könnte eine Lösung für diejenigen sein, denen die normale Installation untersagt ist.

Ein bisschen chaotisch, ich bevorzuge [net use] (http://superuser.com/questions/244579/copy-unc-network-path-not-drive-letter-for-pathson-mapped-drives-from- windows / 660654 (660654), wie von Jimbo vorgeschlagen. Jonas Byström vor 10 Jahren 3
35
kmote

UPDATE: Der Ansatz von CoolCool ist noch einfacher als meiner. Befürworte seine Antwort.

Hier ist die Problemumgehung, die ich verwende, wenn Sie zugeordnete Netzwerkpfade über Outlook senden:

  1. Halten Sie im Windows Explorer die shiftTaste gedrückt, klicken Sie mit der rechten Maustaste auf die Datei, und wählen Sie " Als Pfad kopieren " aus.
  2. Fügen Sie einen Hyperlink in die E-Mail ein und fügen Sie ihn in das Adressfeld des Dialogfelds Hyperlink ein. (Abkürzung: ctrl-K ctrl-V+ OK). Zu diesem Zeitpunkt zeigt der Link den zugeordneten Laufwerksbuchstaben als Root ( Q:\foo.doc) an.
  3. Nun r Sie auf und wählen Sie „ Hyperlink bearbeiten ... “ Sie werden feststellen, dass das Adressfeld wieder in den vollständigen UNC - Pfad übersetzt wurde ( \\cartman\users\emueller\foo.doc). Klicken Sie mit der Maus im Adressfeld auf ctrl-Aund, ctrl-Cum den vollständigen Pfad in die Zwischenablage zu kopieren. Bewegen Sie dann den Cursor zum oberen Feld ("Text to Display:") ctrl-Aund ctrl-Vdrücken Sie, um ihn in Ihrer E-Mail korrekt anzuzeigen.
Ich sehe die beschriebenen Dinge nicht. DarenW vor 10 Jahren 0
Welchen Teil kannst du nicht sehen? Können Sie den Hyperlink erstellen? Wissen Sie, wie Sie den Link bearbeiten? kmote vor 10 Jahren 0
Wenn Sie in Schritt 3. ein Zeichen eingeben und löschen, wird der "anzuzeigende Text" aktualisiert. Dies ist einfacher als das Kopieren / Einfügen. 79E09796 vor 9 Jahren 3
Sie müssen kein Zeichen in "Anzuzeigender Text" eingeben und dann löschen. Löschen Sie es einfach. Bae vor 8 Jahren 0
In der Antwort von Coolcol http://superuser.com/a/922152/190599 können Sie die Kopie beschleunigen, indem Sie mit der rechten Maustaste auf die Option "Verknüpfung hier erstellen" klicken. Bae vor 8 Jahren 1
Toller Tipp, @ Bee! Ich habe meine Antwort auf CoolCool's aktualisiert. kmote vor 5 Jahren 0
23
Coolcol

Geoff war im Grunde genau richtig, aber um einen Schritt weiter zu gehen,

  1. RECHTS-DRAGIEREN Sie den Ordner aus dem Windows Explorer in den Körper Ihrer neuen E-Mail.
  2. Wählen Sie dann "Hyperlink hier erstellen" .
am schnellsten und am meisten aus der Box-est Alex vor 8 Jahren 1
Sollte die beste Antwort sein, da das Problem meistens in einer Unternehmensumgebung auftritt und Sie dort keine Software installieren können. berezovskyi vor 8 Jahren 3
Dies muss mit der Antwort von kmote http://superuser.com/a/454119/190599 zusammengeführt werden, da die beiden zusammen superschnell sind Bae vor 8 Jahren 0
17
Icarus

I just had the need for the same thing OP is asking and after searching on Google and reading the answers, none of them provided what I think the OP and I are looking for.

The problem here is that one may map a network share to Drive Y whereas someone else in the organization may have the same network share mapped as Drive X; therefore, sending a link such as Y:\mydirectory may not work for anyone else except me.

As the OP explains, Explorer does show the actual path in the Explorer bar, but you cannot copy it (typing is tedious and prone to errors, so this is not an option) even if you choose copy as path from the context menu:

enter image description here

So the solution I came up with (by copying someone else's code) was a little C# program that you can call from a context menu in Explorer and will allow you to translate the Mapped drive letter to the actual UNC path.

Here's the code:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace Utils { //This is the only piece of code I wrote class Program { [STAThread] static void Main(string[] args) { //Takes the parameter from the command line. Since this will //be called from the context menu, the context menu will pass it //via %1 (see registry instructions below) if (args.Length == 1) { Clipboard.SetText(Pathing.GetUNCPath(args[0])); } else { //This is so you can assign a shortcut to the program and be able to //Call it pressing the shortcut you assign. The program will take //whatever string is in the Clipboard and convert it to the UNC path //For example, you can do "Copy as Path" and then press the shortcut you //assigned to this program. You can then press ctrl-v and it will //contain the UNC path Clipboard.SetText(Pathing.GetUNCPath(Clipboard.GetText())); } } } } 

And here's the Pathing class definition (I'll try to find the actual source as I can't remember where I found it):

public static class Pathing { [DllImport("mpr.dll", CharSet = CharSet.Unicode, SetLastError = true)] public static extern int WNetGetConnection( [MarshalAs(UnmanagedType.LPTStr)] string localName, [MarshalAs(UnmanagedType.LPTStr)] StringBuilder remoteName, ref int length); /// <summary> /// Given a path, returns the UNC path or the original. (No exceptions /// are raised by this function directly). For example, "P:\2008-02-29" /// might return: "\\networkserver\Shares\Photos\2008-02-09" /// </summary> /// <param name="originalPath">The path to convert to a UNC Path</param> /// <returns>A UNC path. If a network drive letter is specified, the /// drive letter is converted to a UNC or network path. If the /// originalPath cannot be converted, it is returned unchanged.</returns> public static string GetUNCPath(string originalPath) { StringBuilder sb = new StringBuilder(512); int size = sb.Capacity; // look for the : combination ... if (originalPath.Length > 2 && originalPath[1] == ':') { // don't use char.IsLetter here - as that can be misleading // the only valid drive letters are a-z && A-Z. char c = originalPath[0]; if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { int error = WNetGetConnection(originalPath.Substring(0, 2), sb, ref size); if (error == 0) { DirectoryInfo dir = new DirectoryInfo(originalPath); string path = Path.GetFullPath(originalPath) .Substring(Path.GetPathRoot(originalPath).Length); return Path.Combine(sb.ToString().TrimEnd(), path); } } } return originalPath; } } 

You build the program and put the executable somewhere in your PC, say for example, in c:\Utils

Now you add a context menu option in Explorer as so:

Regedit and then:

HKEY_CLASSES_ROOT\*\Directory\Shell Right-click Shell --> New Key --> Name: "To UNC Path" Right-click To UNC Path --> New Key --> Name: command Right-click Default entry and select `Modify` Value Data: c:\Utils\Utils.exe "%1" 

You are done. Now you'll see this option when you right-click a directory from a mapped drive:

enter image description here

Note

I can provide the executable so you don't have to do the compilation yourself. Simply drop me a note here.

Es wäre schön, wenn Sie die ausführbare Datei in einen öffentlichen Bereich wie den Dropbox _Public_-Ordner gepackt und hier einen Link angegeben haben. =) ADTC vor 10 Jahren 1
Viel Arbeit, ich bevorzuge [net use] (http://superuser.com/questions/244579/copy-unc-network-path-not-drive-letter-for-pathson-mapped-drives-from -windows / 660654 # 660654) wie von Jimbo vorgeschlagen. Jonas Byström vor 10 Jahren 3
@ JonasByström Aber das Endergebnis ist für die OP-Frage so schön wie es nur geht. So viel "Arbeit" verdient genau diese Antwort, auch wenn ich sie nicht persönlich benutze sehe vor 8 Jahren 0
@sehe Wenn das "genau so" ist, wäre er noch mehr zuversichtlich, wenn er weitere Schritte hinzufügt, etwa Norton Anti-Virus und einen Hammer, um an der Tastatur zu tippen. Wahrscheinlich. Einige Leute stimmten für [Sarah Palin] (https://en.wikipedia.org/wiki/Sarah_Palin). Na und? Die Schwachen tun, was sie tun, aber rechtfertigen es nicht. "Konstruktive Kritik" Ich glaube, das obige wird genannt. Jonas Byström vor 8 Jahren 0
11
Jonas Byström

Führen Sie den cmd.exeBefehl aus net use:

C:\anywhere>net use New connections will be remembered. Status Local Remote Network ------------------------------------------------------------------------------- OK E: \\XXXXX-XXX-XXX.whatever.com\d$ Microsoft Windows Network OK G: \\YYYYY-Y-YY01\SAN_INTERNAL\DEPARTMENT Microsoft Windows Network OK H: \\ZZZZ-Z-ZZ01\Users$\myself Microsoft Windows Network OK \\AAAAA-AAA-AAAA3\d$ Microsoft Windows Network 

(Danke Jimbo, deine Antwort war gut, aber nicht kurz!)

Ich bedauere, dass ich nur eine positive Stellungnahme abgeben kann. Das ist in der Tat kurz. Vielen Dank. user26398 vor 8 Jahren 2
Dies ist ein idealer Ansatz Ryan B. vor 7 Jahren 1
5
Mark

Jemand namens Shawn Keene bot im Windows 7-Forum auf der Microsoft-Website eine Lösung dafür. Es befindet sich in einem Feature namens Network Place.

  1. Öffnen Sie den Windows Explorer.

  2. Klicken Sie im linken Fensterbereich mit der rechten Maustaste auf den Eintrag Computer und wählen Sie "Netzwerkstandort hinzufügen". Weiter klicken.

  3. Wählen Sie die Option "Wählen Sie einen benutzerdefinierten Netzwerkstandort aus" (es war der einzige, der mir angezeigt wurde), und klicken Sie auf Weiter.

  4. Geben Sie den gewünschten UNC-Pfad ein und klicken Sie zweimal auf Weiter. Dadurch wird ein Eintrag hinzugefügt, der im linken Fenster von Windows Explorer unter den zugeordneten Laufwerken angezeigt wird. Er funktioniert jedoch wie ein zugeordnetes Laufwerk und wird im Dialogfeld "Speichern" der Anwendungen so angezeigt.

  5. Navigieren Sie in Windows Explorer durch diesen Eintrag zum gewünschten Unterverzeichnis, und klicken Sie in den leeren Bereich rechts neben der Brotkrümelpfadanzeige oben im Windows Explorer-Bildschirm. Der UNC-Pfad wird angezeigt und ist hervorgehoben.

Wenn Sie eine andere Quelle zitieren, können Sie auch auf diese Quelle verweisen? DMA57361 vor 13 Jahren 1
Ursprünglich aus diesem Beitrag - die W7-Quelle wurde dort nicht angegeben: http://www.countrykeepers.com/wp/?p=3017 Mark vor 13 Jahren 0
Hey, danke, dass Sie mitgefeuert haben. Ich weiß davon, das meinte ich mit "Ich könnte nur zugeordnete Netzwerkstandorte anstelle der zugeordneten Laufwerke einrichten" in der Frage - es ist, dass viele von ihnen als zugeordnete Laufwerke zu meiner IT kommen Abteilung, und ich möchte in der Lage sein, diese zu verknüpfen. Dies ist jedoch definitiv eine mögliche Lösung für einige Probleme! Ernest Mueller vor 13 Jahren 0
PS: Ich würde deine Antwort abstimmen, aber nicht genug Repräsentanten, also "virtuelles +1!" Ernest Mueller vor 13 Jahren 0
4
Geoff
  1. Öffnen Sie den Ordner.
  2. Ziehen Sie RECHTS eine Datei aus dem Ordner in Microsoft Word.
3
keNscale

Halten Sie Shiftdie Maustaste gedrückt und klicken Sie mit der rechten Maustaste auf die Datei, und wählen Sie "Als Pfad kopieren" aus. Fügen Sie einen Hyperlink in die E-Mail ein und fügen Sie ihn in das Adressfeld des Dialogfelds Hyperlink ein.

Nachdem Sie den Hyperlink in der E-Mail erstellt haben, sind Sie fertig.

Der Link zeigt den zugeordneten Laufwerksbuchstaben. Dies stimmt. Wenn der Empfänger auf den Link in der E-Mail klickt, folgt er dem UNC-Pfad, ob der Benutzer zugeordnet ist oder nicht.

Ich habe dies in anderen Office 2010-Anwendungen, Excel, Power Point und Word versucht.

Dies funktioniert, ist aber die gleiche Antwort wie die Antwort von [kmote] (https://superuser.com/a/454119/206587). davidmneedham vor 5 Jahren 0
2
Craig

You can also right click the directory name in the computer directory view and select rename. This will give you access to copy the path.