2011-02-11 15:29:57 +0000 2011-02-11 15:29:57 +0000
89
89

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

Ich möchte häufig Windows-Netzwerkpfade zu Dateien mit anderen Mitgliedern meines Teams per E-Mail oder Chat freigeben. Wir haben hier eine Menge zugeordneter Laufwerke, sowohl solche, die wir selbst eingerichtet haben, als auch solche, die von unseren IT-Oberherren eingerichtet wurden. Ich würde gerne den vollständigen realen Pfad (nicht den Laufwerksbuchstaben) aus dem Windows Explorer kopieren, um ihn an die Leute zu senden.

Beispiel: Ich habe eine Datei in meinem Laufwerk “Q:”, \cartman\users\emueller, und ich möchte einen Link auf die darin enthaltene Datei foo.doc an meine Mitarbeiter senden. Wenn ich den Dateipfad kopiere (Umschalt+Rechtsklick, “als Pfad kopieren”), erhält er den Dateinamen “Q:\foo.doc” in der Zwischenablage. Dies ist nicht hilfreich für andere, die \cartman\users\emueller\foo.doc sehen müssten, um den Link konsumieren zu können.

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

Ich weiß, ich könnte einfach zugeordnete Netzwerkstandorte anstelle der zugeordneten Laufwerke für die einrichten, die ich persönlich eingerichtet habe, und dieses Problem vermeiden, aber die meisten zugeordneten Laufwerke wie die “Benutzer”-Freigabe stammen aus unserer IT-Unternehmensrichtlinie und können nicht außer Kraft gesetzt werden. Ich könnte einfach einen separaten Netzwerkspeicherort einrichten und dann mein Laufwerk Q: ignorieren, aber das ist unbequem (und sie tun es, damit sie Konten zwischen Servern verschieben können). Sicherlich könnte mein E-Mail-Pfad schließlich abbrechen, weil ich die Laufwerksbuchstabenumleitung verliere, aber das ist für mich in Ordnung.

Ответы (17)

49
49
49
2012-04-19 17:19:19 +0000

Vielleicht ein langer Umweg, aber öffnen Sie ein cmd-Fenster. Machen Sie dann net use > filename

Dann öffnen Sie den Dateinamen und Sie erhalten den Pfad: Bsp:

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

Öffnen von drives.txt

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

Kann \server\c\prog\net aus der Datei für Ihren Gebrauch kopieren.

Hoffentlich hilft das.

47
47
47
2012-08-24 23:20:11 +0000

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

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

Sie können auch wählen, nur eine oder zwei Zeilen im Basis-Kontextmenü anzuzeigen, z.B. können Sie zwei Zeilen haben, Copy Long Path (Langer Pfad kopieren) und Copy Long UNC Path (Langer UNC-Pfad kopieren). Dies eignet sich hervorragend für E-Mail-Benutzer in Ihrem Unternehmen, die Zugriff auf einen Netzwerkpfad haben, und wenn sie die gleiche Netzwerkzuordnung wie Sie haben, können Sie Ersteres wählen, andernfalls können Sie Letzteres verwenden.

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

39
39
39
2012-07-26 21:41:45 +0000

UPDATE: CoolCol’s Ansatz ist sogar noch einfacher als meiner. Hier ist die Umgehung, die ich verwende, wenn ich gemappte Netzwerkpfade über Outlook sende:

  1. halten Sie im Windows Explorer die Umschalttaste gedrückt, r-klicken Sie auf die Datei und wählen Sie “ Kopieren als Pfad”.
  2. Fügen Sie einen Hyperlink in die E-Mail ein und fügen Sie ihn in das Adressfeld des Dialogfelds “Hyperlink” ein. (Tastaturkürzel: Strg-K Strg-V + OK). An dieser Stelle zeigt der Link den abgebildeten Laufwerksbuchstaben als Stamm (Q:\foo.doc) an.
  3. Wenn Sie nun r-klicken und “ Hyperlink bearbeiten…” wählen, werden Sie feststellen, daß das Adressfeld zurück in den vollständigen UNC-Pfad übersetzt wurde (\cartman\users\emueller\foo.doc). Drücken Sie mit der Maus im Adressfeld ctrl-A und ctrl-C, um den vollständigen Pfad in die Zwischenablage zu kopieren, und bewegen Sie dann den Cursor in das oberste Feld (“Anzuzeigender Text:”), drücken Sie ctrl-A und ctrl-V, um ihn in Ihrer E-Mail korrekt anzuzeigen.
32
32
32
2015-06-01 08:49:58 +0000

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

  1. RECHTS-DRAGgen Sie den Ordner aus dem Windows Explorer in den Textkörper Ihrer neuen E-Mail,
  2. wählen Sie dann ‘Hyperlink hier erstellen’.
20
20
20
2012-08-24 20:23:12 +0000

Ich hatte gerade das Bedürfnis nach der gleichen Sache, die das OP fragt, und nachdem ich bei Google gesucht und die Antworten gelesen hatte, lieferte keine davon das, was das OP und ich meiner Meinung nach suchen.

Das Problem hier ist, dass man eine Netzwerkfreigabe auf Drive Y abbilden kann, während jemand anderes in der Organisation dieselbe Netzwerkfreigabe wie Drive X abgebildet haben kann; daher kann es sein, dass das Senden eines Links wie Y:\mydirectory für niemanden außer mir funktioniert.

Wie das OP erklärt, zeigt der Explorer zwar den tatsächlichen Pfad in der Explorer-Leiste an, aber Sie können ihn nicht kopieren (Tippen ist mühsam und fehleranfällig, daher ist dies keine Option), selbst wenn Sie copy as path aus dem Kontextmenü wählen:

Die Lösung, die ich mir (durch Kopieren des Codes einer anderen Person) ausgedacht habe, ist also ein kleines C#-Programm, das Sie über ein Kontextmenü im Explorer aufrufen können und mit dem Sie den zugeordneten Laufwerksbuchstaben in den tatsächlichen UNC path übersetzen können.

Hier ist der 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()));           
            }
        }
    }
}

Und hier ist die Pathing-Klassendefinition (Ich werde versuchen, den eigentlichen Quelltext zu finden, da ich mich nicht erinnern kann, wo ich ihn gefunden habe):

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:008-02-29"
    /// might return: "\networkserver\Shares\Photos008-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 {LETTER}: 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;
    }
}

Sie bauen das Programm und legen die ausführbare Datei irgendwo auf Ihrem PC ab, z.B. in c:\Utils

Jetzt fügen Sie eine Kontextmenü-Option im Explorer wie folgt hinzu:

Regedit und dann:

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"

Sie sind fertig. Jetzt sehen Sie diese Option, wenn Sie mit der rechten Maustaste auf ein Verzeichnis von einem zugeordneten Laufwerk klicken:

Hinweis

Ich kann die ausführbare Datei zur Verfügung stellen, so dass Sie die Kompilierung nicht selbst vornehmen müssen. Schreiben Sie mir einfach hier eine Notiz.

12
12
12
2013-10-16 12:16:39 +0000

Führen Sie den Befehl cmd.exe 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, Ihre Antwort war gut, aber nicht kurz!)

5
5
5
2011-02-17 12:04:02 +0000

Jemand namens Shawn Keene lieferte dazu im Windows 7-Forum auf der Microsoft-Website eine Lösung . Sie befindet sich in einer Funktion namens Network Place.

  1. Öffnen Sie den Windows-Explorer.

  2. Klicken Sie mit der rechten Maustaste auf den Eintrag Computer im linken Fensterbereich und wählen Sie “Einen Netzwerkplatz hinzufügen”. Klicken Sie auf Weiter.

  3. Wählen Sie die Option “Wählen Sie einen benutzerdefinierten Netzwerkort” (es war die einzige, die mir präsentiert 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 Fensterbereich des Windows-Explorers unterhalb der zugeordneten Laufwerke angezeigt wird, aber er funktioniert genau wie ein zugeordnetes Laufwerk und wird auf diese Weise im Dialogfeld “Speichern” der Anwendungen angezeigt.

  5. Navigieren Sie im Windows-Explorer durch diesen Eintrag zum gewünschten Unterverzeichnis und klicken Sie in den leeren Bereich rechts neben der Anzeige des Brotkrümelpfads im oberen Bereich des Windows-Explorer-Bildschirms, und der UNC-Pfad erscheint und wird hervorgehoben.

4
4
4
2014-11-13 15:35:34 +0000
  1. Öffnen Sie den Ordner
  2. Ziehen Sie mit der rechten Maustaste eine Datei aus dem Ordner in Microsoft Word.
3
3
3
2013-10-02 19:04:28 +0000

Halten Sie die Umschalttaste gedrückt, klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie “Als Pfad kopieren”. 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 an, dass dies zutrifft. Wenn der/die Empfänger auf den Link in der E-Mail klickt/klicken, folgt er dem UNC-Pfad, unabhängig davon, ob der Benutzer zugeordnet ist oder nicht.

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

2
2
2
2012-09-28 13:42:54 +0000

Sie können auch in der Computer-Verzeichnisansicht mit der rechten Maustaste auf den Verzeichnisnamen klicken und Umbenennen wählen. Dadurch erhalten Sie Zugang zum Kopieren des Pfades.

1
1
1
2013-10-16 13:33:07 +0000

Speichern Sie dies in Ihrem sendto-Ordner, meiner ist in C:\Documents and Settings\xxxxID\SendTo mit einem Namen wie Copy UNC Filepath.vbs (muss mit .vbs enden). Wenn Sie nun mit der rechten Maustaste auf einen Ordner oder eine Datei klicken, wird die UNC in die Zwischenablage kopiert. Unser persönlicher Ordner ist das Laufwerk F und konvertiert daher weder C: noch F:

'send UNC filepath to clipboard when selected file is input as Send To
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")

myPath=Wscript.Arguments(0)
drive = Left(myPath,2)

if drive = "C:" OR drive = "\" OR drive = "F:" then
    'leave unchanged
else
    Set oWSN = CreateObject("WScript.Network") 
    Set oDrives = oWSN.EnumNetworkDrives 
    For i = 0 to oDrives.Count - 1 Step 2 
        If oDrives.Item(i) = drive Then 
            sUNC = LCase(oDrives.Item(i+1)) 
            exit For
        end if
    Next 
    myPath=sUNC & Mid(myPath, 3)
end if

objIE.document.parentwindow.clipboardData.SetData "text",myPath
objIE.Quit
1
1
1
2016-02-03 19:51:46 +0000
  1. Klicken Sie im Explorer-Fenster mit der rechten Maustaste auf das zugeordnete Laufwerk im Dateibaum auf der linken Seite.
  2. Wählen Sie Umbenennen.
  3. Während der Text markiert ist, klicken Sie mit der rechten Maustaste auf das Laufwerk im Dateibaum auf der linken Seite.
  4. Jetzt wird der Pfad kopiert (mit etwas zusätzlichem Text, der nach dem Kopieren an einen neuen Ort leicht gelöscht werden kann).
0
0
0
2014-10-09 22:20:56 +0000

Erstellen Sie eine DOS-Batch-Datei wie showmappeddrives.bat, die enthält:

@echo off    
net use
pause

Legen Sie die Datei auf Ihren Desktop, wenn Sie möchten. Doppelklicken Sie darauf, und es werden alle Ihre zugeordneten Laufwerke angezeigt.

0
0
0
2018-04-20 18:34:56 +0000

Alternative einfache Lösung:

Wenn Sie die Zuordnung des Laufwerks als Laufwerksbuchstabe aufheben, dann fügen Sie es stattdessen als “Netzwerkspeicherort” wieder hinzu (d.h. klicken Sie mit der rechten Maustaste auf “Computer” im Explorer-Fenster und wählen Sie “Netzwerkspeicherort hinzufügen”) Geben Sie den vollständigen Pfad für den Ordner ein. Wenn Sie vorwärts gehen, wird der vollständige Pfad in der Adressleiste angezeigt. Anwendungen, die vom Laufwerk als Buchstaben abhängen, können jedoch fehlschlagen.

Wenn ich mir die obigen Antworten durchsehe, glaube ich nicht, daß ich die einfache Lösung gesehen habe, die ich von: https://answers.microsoft.com/en-us/windows/forum/windows_7-files/how-can-i-display-the-full-unc-path-of-a-sub/ebfd4253-8016-4cbd-b0d6-1bbeae9189f9

0
0
0
2011-02-12 22:06:12 +0000

In Unternehmensnetzwerken erstellen die meisten IT-Abteilungen Freigaben unter Verwendung von DFS-Namensräumen, innerhalb von DFS-Freigaben können Sie mit der rechten Maustaste auf einen Ordner klicken und sein Ziel finden.

Die andere Methode wäre, zu sehen, ob die Freigabe in Active Directory veröffentlicht wird. Die einfachste Möglichkeit für andere Benutzer, Freigaben zu finden, ohne den UNC-Pfad oder den Dateiserver-Namen/Pfad zu kennen.

Wenn Sie Dokumente für eine große Anzahl von Benutzern freigeben, könnte etwas wie Microsoft SharePoint eine bessere Lösung sein, da es eine Webschnittstelle (mit WebDAV für den Zugriff im UNC-Stil) und integrierte Tools bietet, um andere Benutzer auf Dokumente aufmerksam zu machen.

Hoffentlich hilft das.

0
0
0
2016-11-24 06:37:36 +0000

Klicken Sie mit der rechten Maustaste auf den Ordner > Teilen > “ für sich selbst freigeben (bedeutet nichts) . Sie erhalten den Pfad. / oder \ . oder klicken Sie auf Alle freigegebenen Netzwerke anzeigen.

-2
-2
-2
2015-02-21 09:33:45 +0000

Mit SHIFT + Rechtsklick “Als Pfad kopieren” wird das Laufwerk+Dateiname kopiert (z.B. R:\test.doc), oder wenn Sie die Datei über UNCpath anschauen, der UNCpath+Dateiname (z.B. “\nas\Documents\test.doc”)

Dies ist ‘Standard’-Verhalten von Windows, und daher mein Favorit, vor allem Explorer-Plugins, die Systeme verlangsamen… ;)