Windows Gezgini'nden eşlenen sürücülerdeki yollar için UNC ağ yolunu (sürücü harfi değil) kopyalayın


84

Sık sık Windows ağ yollarını dosyalarımdaki ekiple diğer kişilerle e-posta veya sohbet yoluyla paylaşmak istiyorum. Burada hem kendimiz kurduğum hem de BT yöneticilerimiz tarafından oluşturulan pek çok haritalı sürücümüz var. Yapabilmek istediğim, Windows Gezgini'nden gerçek kişilere göndermek için tam yolu (sürücü harfini değil) tam yolunu kopyalamak.

Örnek: "Q:" sürücümde bir dosya var, \\ cartman \ users \ emueller ve orada çalışanlara foo.doc dosyasına bir link göndermek istiyorum. Dosya yolunu kopyaladığımda (shift + sağ tıklayıp "yol olarak kopyala") panodaki "Q: \ foo.doc" dosya adını alır. Bu, bağlantıyı kullanabilmek için \\ cartman \ users \ emueller \ foo.doc'u görmesi gereken diğerlerine yararsızdır.

Explorer'da tam yolunu açıkça biliyor - adres çubuğunda "Bilgisayar -> emueller (\\ cartman \ users) (Q :) ->" ifadesini görüyorum. "Hey adam bu yolu \: cartman \ users \ emueller ile metin olarak kopyalayın, Q: değil mi?" Demenin bir yolu var mı?

Kişisel olarak kurduğum sürücüler için haritalanan sürücüler yerine yalnızca eşlenen ağ konumlarını ayarlayabildiğimi ve bu sorunu önleyebileceğimi biliyorum, ancak "kullanıcılar" payı gibi eşlenen sürücülerin çoğu kurumsal BT politikamızdan geliyor ve geçersiz kılınmak. Yalnızca ayrı bir ağ konumu oluşturabilir ve sonra Q: sürücümüzü görmezden gelebilirdim ancak bu uygun değildir (ve bunu yaparlar, böylece hesapları sunucular arasında taşıyabilirler). E-posta ile gönderilen yolumun sonunda ara verebileceğinden eminim, çünkü sürücü harfini dolaylı olarak kaybediyorum ama bu benim için sorun değil.


Herhangi bir üçüncü taraf uygulamasını yükleyemediğiniz ve / veya kayıt defterine erişemediğiniz kilitli bir şirket ortamında çalışıyorsanız, bu çözüm işe yarayacak ... superuser.com/a/704374/46099
Richard

Yanıtlar:


44

Ben de tamamen aynı problemi yaşadım - herkes benim gibi eşlenmiş sürücülere sahip değildi veya aynı harflerle eşleştirilmedi.

Sonra çok araştırıcı bir içerik menüsü adında uzantısı bulundu Yolu Kopya Kopya GitHub'dan ( https://pathcopycopy.github.io/ benzer genişletilmiş bir versiyonudur), (PathCopy denir) eski uzantısı yolları kopyalamak için epeyce seçenek vardır UNC yolları için bir tane olmak üzere metin olarak - mevcut seçeneklerin bir örneği aşağıda gösterilmiştir:

Yol Kopyalama Bağlam Menüsü örneği

Temel içerik menüsünde yalnızca bir veya iki satır göstermeyi de seçebilirsiniz; örneğin, iki satır olabilir, Uzun Yol Kopyala ve Uzun UNC Yolunu Kopyala. Şirketinizdeki bir ağ yoluna erişimi olan kullanıcıları e-postayla göndermek için harikadır ve eğer sizinle aynı ağ haritalarına sahiplerse, öncekileri seçebilir, aksi takdirde ikincisini kullanabilirsiniz.

Güncelleme : Sürüm 12.0'dan itibaren, sadece mevcut kullanıcı için AppData\Localklasöre yükleyen yukarıdaki sitede yeni bir "taşınabilir" yükleyici bulunmaktadır . Bunu denemedim, ancak normal kurulumunda yasaklananlar için bir çözüm olabilir.


4
Biraz dağınık, Jimbo tarafından önerilen net kullanımı tercih ederim .
Jonas Byström

48

Belki uzun bir yol ama bir cmd penceresi açın. O zaman yapmaknet use > filename

Sonra dosya adını açın ve yolunu alabilirsiniz:
Örn:

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

açılış drives.txt

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

\\server\c\prog\netKullanımınız için dosyadan kopyalayabilirsiniz .

Bu yardımcı olur umarım.


10
basit ve kolay. Konuyla ilgili diğer tüm çözümler çok toplu ...
radistao

8
Veya "> drives.txt" yi atlayın ve çıkılan yolu doğrudan terminal penceresinden kopyalayın.
DarenW

1
Basit ve kolay. Win.
CAD

Parmaklarınızın ucunda msysgit / bash ile bu diğer çözümlerden çok daha kolaydır. Büyük!
Jonas Byström

1
net use > filename kafam karıştı .. ve oradaki asıl pdf dosyamı kullandım, böylece orijinal pdf dosyamı kapattım. evet biliyorum ki benim kötüüm. bu yüzden kendine iyi bak. sadece net useterminal penceresinden kullanın ve kopyalayın. ve gerçekten bir dosyanın içine ihtiyacınız varsa .. o zaman ne yapacağınızı biliyorsunuz .. `> uncpathnamefile.txt '
ihightower

38

GÜNCELLEME: CoolCool'un yaklaşımı benimkinden bile daha kolay. Cevabını oyla.

Outlook ile eşlenmiş ağ yollarını gönderirken kullandığım geçici çözüm:

  1. Windows Gezgini'nde, shiftdüğmeyi basılı tutun, dosyayı r tıklayın ve " Yol olarak kopyala " seçin .
  2. E-postaya bir Köprü ekleyin ve Köprü iletişim kutusunun adres alanına yapıştırın. (Kısayol: ctrl-K ctrl-V+ Tamam). Bu noktada, link haritalanmış sürücü harfini root ( Q:\foo.doc) ile gösterecektir .
  3. Şimdi, r-tıklayın ve " Köprü Düzenle ... " yi seçin , Adres alanının tam UNC yoluna ( \\cartman\users\emueller\foo.doc) geri çevrildiğini göreceksiniz . Adres alanına Farenizi vurmak ctrl-Ave ctrl-Chit: Üst alan ( "Display Metin") için imleci hareket ettirmek, sonra panoya tam yolunu kopyalamak ctrl-Ave ctrl-Ve-postanıza doğru görüntülemek için.

Açıklanan şeyleri göremiyorum.
DarenW

hangi kısmı göremiyorsun Köprüyü oluşturabilir misin? Bağlantıyı nasıl düzenleyeceğinizi biliyor musunuz?
kmote

3
3. adımda, bir karakter yazıp onu silerseniz, kopyalamak / yapıştırmaktan daha kolay olan "Görüntülenecek Metin" i güncelleyecektir.
79E09796 11

"Görüntülenecek Metin" e bir karakter girmenize ve ardından silmenize gerek yoktur, sadece silin.
Bae,

1
Kopyayı hızlandırmak için "Burada Kısayol Oluştur" seçeneğine tıklayarak Coolcol’ın süper kullanıcı.com/ a/ 922152/190599 numaralı yanıtına bakın .
Bae,

28

Geoff temelde dikkat çekiciydi, fakat bir adım daha ileri gitmek için

  1. RIGHT-DRAG klasörü Windows Gezgini'nden yeni e-postanızın gövdesine,
  2. daha sonra 'Burada Köprü Oluştur'u seçin .

1
kutu est-en hızlı ve en
Alex

3
Sorun çoğunlukla şirket ortamında ortaya çıktığından ve oraya yazılımı kendiniz kuramadığınız için en iyi cevap olmalıdır.
berezovskyi

Bu, kmote'nin cevabı superuser.com/a/454119/190599'ın cevabı ile birleştirilmelidir, çünkü ikisi birlikte süper hızlıdır
Bae

19

OP’un sorduğu ve Google’da arama yaptıktan ve cevapları okuduktan sonra hiçbiri OP’nin ve aradığım şeyi sağlamadıklarına ihtiyacım vardı.

Buradaki sorun, birinin bir Drive Yağ paylaşımını haritalayabilmesidir Drive X; oysaki, kuruluştaki bir başkası, aynı ağ paylaşımına eşlenmiş olabilir ; bu nedenle, ben gibi bir Y:\mydirectorybaşkası için işe yaramayabilir gibi bir bağlantı gönderme .

OP'in açıkladığı gibi, Explorer Explorer çubuğundaki asıl yolu gösterir, ancak copy as pathbağlam menüsünden seçseniz bile kopyalayamazsınız (yazma işlemi sıkıcı ve hatalara açıktır, bu bir seçenek değildir) :

görüntü tanımını buraya girin

Bu yüzden bulduğum çözüm (başkasının kodunu kopyalayarak) Explorer'da bir bağlam menüsünden arayabileceğiniz ve Eşlenmiş sürücü harfini asıl metne çevirmenize izin verecek küçük bir C # programı oldu UNC path.

İşte kod:

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

Ve işte Pathingsınıf tanımı (nerede bulduğumu hatırlayamadığım için asıl kaynağı bulmaya çalışacağım):

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 {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;
    }
}

Programı derleyin ve yürütülebilir dosyayı PC'nizin herhangi bir yerine koyun, örneğin c:\Utils

Şimdi Explorer’a bir bağlam menüsü seçeneği ekleyeceksiniz:

Regedit ve sonra:

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"

Bitirdiniz. Eşlenmiş bir sürücüdeki bir dizini sağ tıklattığınızda şimdi bu seçeneği göreceksiniz:

görüntü tanımını buraya girin

Not

Yürütülebilir dosyayı sağlayabilirim, böylece derlemeyi kendiniz yapmak zorunda kalmazsınız. Bana buraya bir not bırak.


1
Yürütülebilir dosyayı sıkıştırıp, Dropbox Public klasörü gibi bir ortak alana koyup burada bir bağlantı sağladıysanız iyi olur. =)
ADTC

3
Bir sürü iş, Jimbo tarafından önerilen net kullanımı tercih ederim .
Jonas Byström

@ JonasByström Fakat nihai sonuç OP'nin sorusu için elde ettiği kadar güzel. "Çok iş" Ben şahsen kullanmaz bile, bu upvote cevap kazanır tam ne olduğunu Yani
sehe

11

cmd.exeKomutu çalıştırın 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

(Teşekkürler Jimbo, cevabınız iyiydi ama kısa değildi!)


2
Verecek tek bir oyum olduğu için pişmanım. Bu gerçekten özlü. Teşekkürler.
user26398

1
Bu ideal bir yaklaşımdır
Ryan B.

5

Shawn Keene adlı biri buna Microsoft web sitesindeki Windows 7 Forumunda bir çözüm sağladı. Network Place adlı bir özelliğe sahiptir.

  1. Windows Gezgini'ni açın.

  2. Sol bölmedeki Bilgisayar girişine sağ tıklayın ve “Ağ konumu ekle” yi seçin. Sonrakine tıkla.

  3. “Özel bir ağ konumu seç” seçeneğini seçin (bana sunulan tek kişi oydu) ve İleri'yi tıklayın.

  4. İstediğiniz UNC yolunu girin ve iki kez İleri'yi tıklayın. Bu, eşlenen sürücülerin altında Windows Gezgini'nin sol bölmesinde görünen bir giriş ekler, ancak yalnızca eşlenmiş bir sürücü gibi çalışır ve uygulamaların Kaydet iletişim kutusunda bu şekilde gösterilir.

  5. Windows Gezgini'nde, bu girişe istediğiniz alt dizine gidin ve Windows Gezgini ekranının üstündeki ekmek kırıntıları yolu ekranının sağındaki boş alana tıklayın; UNC yolu belirip vurgulanır.


1
Başka bir kaynaktan alıntı yapacaksanız, lütfen bu kaynağa da bağlantı verebilir misiniz?
DMA57361

Asıl bu yazıdan
Mark

Hey, içeri girdiğin için teşekkürler. Bunu biliyorum, "Eşlenmiş sürücüler yerine sadece eşlenmiş ağ yerleri kurabilirim" sorusuyla kastetmiştim. departmanı ve bunları bağlayabilmek istiyorum. Ama bu kesinlikle problemin bir kısmına olası bir çözüm!
Ernest Mueller

PS cevabınızı oylar, ancak yeterli temsilci olmazdım, bu yüzden "sanal + 1!"
Ernest Mueller

4
  1. Klasörü açın.
  2. SAĞ bir dosyayı klasörden Microsoft Word'e sürükleyin.

3

ShiftDosyayı basılı tutun ve sağ tıklayın ve "Yol olarak kopyala" yı seçin. E-postaya bir Köprü ekleyin ve Köprü iletişim kutusunun adres alanına yapıştırın.

E-postadaki köprüyü oluşturduktan sonra işiniz biter.

Bağlantı, haritalanan sürücü harfinin bunun doğru olduğunu gösterecektir. Alıcı (lar) e-postadaki bağlantıya tıkladığında, kullanıcının eşleşip eşleşmediğine bakılmaksızın UNC yolunu izleyecektir.

Bunu diğer Office 2010 uygulamalarında (Excel, Power Point ve Word) denedim.



2

Ayrıca, bilgisayar dizin görünümünde dizin adını sağ tıklayıp yeniden adlandırmayı da seçebilirsiniz. Bu, yolu kopyalamanıza erişim sağlayacaktır.


1
  1. Gezgin penceresinde, soldaki dosya ağacında eşlenen sürücüyü sağ tıklayın.
  2. Yeniden adlandır'ı seçin.
  3. Metin vurgulandığında, right_click-> copy.
  4. Şimdi yol kopyalanır (yeni bir yere kopyalandıktan sonra kolayca silinen bazı ekstra metinlerle birlikte).

1
Gerçek yolun her zaman orada görünmediğini, yeniden adlandırabileceğiniz gerçeğinin kanıtı olarak göründüğünü unutmayın.
Ben N,

1

Bunu sendto klasörünüze kaydedin, benimki (.vbs bitmeli) C:\Documents and Settings\xxxxID\SendTo gibi bir isimle. Copy UNC Filepath.vbsŞimdi bir klasöre veya dosyaya sağ tıkladığınızda UNC'yi panoya kopyalayacaktır. Kişisel klasörümüz F sürücüsüdür ve bu nedenle C: veya F: 'yi dönüştürmez.

'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

Gönderen Andrew Kelly : @Colkerr, ben senin "Kopyala UNC Filepath.vbs" kullanmaya çalıştı ama hat 2 karakter 54 üzerinde VBScript derleme hatası alıyorum "deyimi sonuna beklenen"
Kanadalı Luke'u

Bu kod çalışmıyor. Kilitli bir şirket ortamındaysanız , superuser.com/a/704374/46099 adresine bakardım .
Richard,

Gönder klasörünü bulmak için bunu dosya gezgini konum çubuğuna yazın: kabuk: sendto Komut dosyası benim için iyi çalıştı. Kaynak: dummies.com/computers/operating-systems/windows-7/…
David Lotts

0

Kurumsal ağlarda çoğu BT Departmanı, DFS Ad Alanları'nı kullanarak paylaşımlar oluşturur; DFS Paylaşımları içinde bir klasöre sağ tıklayıp hedefini bulabilirsiniz.

Diğer yöntem, Paylaşım'ın Active Directory'de yayınlanıp yayınlanmadığını görmek olacaktır. UNC yolunu veya Dosya Sunucusu adını / yolunu bilmeden diğer kullanıcıların paylaşımları bulmasının en kolay yolu.

Çok sayıda kullanıcıyla belgelerinizi paylaşıyorsanız, Microsoft SharePoint gibi bir şey, bir web arabirimi (UNC stil erişimi için WebDAV ile) ve diğer kullanıcıları belgelere karşı uyarmak için yerleşik araçlar olarak daha iyi bir çözüm olabilir.

Bu yardımcı olur umarım.


1
Klasörlerime sağ tıkladığımda bir "hedef bul" seçeneğini göremiyorum - tam olarak ne demek istiyorsun? Demek istediğim, gerçek yolu görebiliyorum, bu bir gizem değil, sadece kesip geçip yazı yazabilmek istiyorum. Sharepoint'e gelince, yazılımdaki $ 50k benim "" sadece bir yolu kesip yapıştıramaz mıyım "cevabımın ideal cevabı değil
Ernest Mueller

0

Aşağıdakileri içeren bir DOS toplu iş dosyası oluşturun showmappeddrives.bat:

@echo off    
net use
pause

İsterseniz dosyayı masaüstünüze yerleştirin.
Çift tıkladığınızda tüm haritalanmış sürücülerinizi gösterecektir.


Bunun nasıl kullanılacağına dair bir açıklama eklerseniz, cevabınız Jimbo'nun cevabının 2½ yıl öncesinden gelen cevabının bir kopyası olacaktır.
G-Man

0

Klasöre> Paylaş> "sağ tıkla ve kendinle paylaş (hiçbir şey ifade etmiyor). / Veya \.


0

Alternatif Basit Çözüm:

Sürücüyü sürücü harfi olarak çıkarırsanız, "ağ konumu" yerine tekrar ekleyin (yani Explorer Penceresinde "Bilgisayar" a sağ tıklayın ve "Ağ konumu ekle" yi seçin). Klasörün tam yolunu yazın . İleriye gitmek, adres çubuğundaki tam yolu görüntüler. Ancak, sürücüye bir harf olarak bağlı olan uygulamalar başarısız olabilir.

Yukarıdaki yanıtları inceleyerek elde ettiğim basit çözümü gördüm sanmıyorum: https://answers.microsoft.com/en-us/windows/forum/windows_7-files/how-can-i-display -the-full-unc yolu-of-a-alt / ebfd4253-8016-4cbd-b0d6-1bbeae9189f9


-2

ÜSTKRKT + RightClick "Yol olarak kopyala", sürücü + dosya adını (yani R: \ test.doc) kopyalar veya dosyaya UNCpath UNCpath + dosya adıyla (yani "\ nas \ Documents \ test.doc) bakıyorsanız ")

Bu, Windows'un 'standart' davranışıdır ve bu nedenle en sevdiğim, hepsinden önce, sistemleri yavaşlatan tarayıcı eklentileridir ....;)


1
Bu benim sorunumu çözmeme yardımcı olmuyor.
Ernest Mueller
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.