Saya fikir anda, seperti saya, sering melihat laluan bentuk !!! Penting____Baru____!!! Jangan padam!!! No Pesanan 98819-649-B bertarikh 30 Februari 1985 mengenai pelantikan Ivan Aleksandrovich Kozlov sebagai pemangku ketua jabatan untuk menyokong pelanggan VIP korporat dan menganjurkan mesyuarat perniagaan di luar.doc.
Dan selalunya anda tidak akan dapat membuka dokumen sedemikian dalam Windows dengan segera. Seseorang mempraktikkan penyelesaian dalam bentuk pemetaan cakera, seseorang menggunakan pengurus fail yang boleh berfungsi dengan laluan panjang: Pengurus Jauh, Komander Jumlah dan seumpamanya. Dan lebih banyak lagi sedih menyaksikan bagaimana skrip PS yang mereka cipta, di mana banyak kerja dilaburkan dan yang bekerja dengan hebat dalam persekitaran ujian, dalam persekitaran pertempuran, tanpa daya mengadu tentang tugas yang mustahil: Laluan yang ditentukan, nama fail atau kedua-duanya terlalu panjang. Nama fail yang layak sepenuhnya mestilah kurang daripada 260 aksara dan nama direktori mestilah kurang daripada 248 aksara.
Ternyata, 260 aksara sudah cukup "bukan sahaja untuk semua orang." Jika anda berminat untuk melampaui batas apa yang dibenarkan, saya bertanya di bawah kucing.
Berikut adalah beberapa akibat malang mengehadkan panjang laluan fail:
terdapat folder pada pelayan, sebagai contoh, D:DataSharedAccounting, yang dikongsi melalui SMB dan dipasang kepada pengguna sebagai pemacu rangkaian S; pengguna mencipta fail yang pentadbir / skrip tidak boleh membaca apabila mengakses secara tempatan dari pelayan, kerana laluan mutlak lebih panjang daripada laluan rangkaian;
apabila memindahkan data dari sistem lain yang mempunyai sekatan yang kurang ketat pada panjang laluan, dalam persekitaran baharu, sesetengah daripada mereka akan menjadi tidak dapat diakses tanpa menari dengan rebana;
Sedikit menyimpang dari topik, saya perhatikan bahawa untuk Replikasi DFS, masalah yang dipertimbangkan dalam artikel itu tidak mengerikan dan fail dengan nama panjang berjaya bergerak dari pelayan ke pelayan (kecuali, sudah tentu, jika tidak, anda dilakukan dengan betul).
Saya juga ingin menarik perhatian kepada utiliti yang sangat berguna yang telah membantu saya lebih daripada sekali robocopy. Dia juga tidak takut dengan jalan yang panjang, dan dia tahu banyak perkara. Oleh itu, jika tugas itu datang kepada menyalin / memindahkan data fail, anda boleh berhenti padanya. Jika anda perlu bermain-main dengan senarai kawalan akses sistem fail (DACL), lihat jauh subinacl. Walaupun usianya yang agak besar, ia menunjukkan dirinya dengan sempurna pada Windows 2012 R2. Berikut kaedah permohonan dipertimbangkan.
Saya juga berminat untuk mempelajari cara bekerja dengan laluan PowerShell yang panjang. Dengan dia, hampir seperti dalam jenaka berjanggut tentang Ivan Tsarevich dan Vasilisa yang Cantik.
Cara cepat
Beralih kepada Linux dan jangan risau tentang Windows 10/2016/2019 dan dayakan tetapan dasar kumpulan/ tweak pendaftaran yang sesuai. Saya tidak akan memikirkan kaedah ini secara terperinci, kerana. sudah ada banyak artikel di internet mengenai topik ini, contohnya, ΡΡΠ°.
Memandangkan dalam kebanyakan syarikat terdapat banyak, secara ringkasnya, bukan versi sistem pengendalian baharu, kaedah ini pantas hanya untuk menulis di atas kertas, melainkan, sudah tentu, anda adalah salah seorang yang bertuah yang mempunyai beberapa sistem warisan dan Windows. 10/2016/2019 pemerintahan .
jalan jauh
Di sini kami segera membuat tempahan bahawa perubahan itu tidak akan menjejaskan kelakuan Windows Explorer, tetapi akan membolehkan anda menggunakan laluan panjang dalam cmdlet PowerShell, seperti Get-Item, Get-ChildItem, Remove-Item, dsb.
Mula-mula, mari kemas kini PowerShell. Sudah selesai satu, dua, tiga.
Kami mengemas kini Rangka Kerja .NET kepada versi sekurang-kurangnya 4.5. Sistem pengendalian mestilah sekurang-kurangnya Windows 7 SP1/2008 R2. Versi semasa boleh dimuat turun di sinibaca maklumat lanjut di sini.
Muat turun dan pasang Windows Management Framework 5.1
Kami but semula mesin.
Mereka yang rajin boleh melakukan langkah di atas secara manual, mereka yang malas boleh melakukannya dengan bantuan SCCM, polisi, skrip dan alatan automasi yang lain.
Versi semasa PowerShell boleh didapati daripada pembolehubah $PSVersionTable. Selepas kemas kini ia sepatutnya kelihatan seperti ini:
Sekarang apabila menggunakan cmdlet Get-ChildItem dan orang lain seperti dia dan bukannya biasa Jalan kami akan gunakan literalPath.
Untuk kemudahan menukar laluan daripada format biasa kepada format literalPath anda boleh menggunakan fungsi ini:
Function ConvertTo-LiteralPath
Param([parameter(Mandatory=$true, Position=0)][String]$Path)
If ($Path.Substring(0,2) -eq "") {Return ("?UNC" + $Path.Remove(0,1))}
Else {Return "?$Path"}
}
Sila ambil perhatian bahawa apabila menetapkan parameter literalPath kad bebas tidak boleh digunakan (*, ? dan sebagainya).
Sebagai tambahan kepada parameter literalPath, dalam cmdlet PowerShell yang dikemas kini Get-ChildItem parameter yang diterima Mendalam, yang mana anda boleh menetapkan kedalaman bersarang untuk carian rekursif, saya menggunakannya beberapa kali dan berpuas hati.
Sekarang anda tidak boleh takut bahawa skrip PS anda akan tersasar dari laluan berduri yang panjang dan tidak akan melihat fail yang jauh. Sebagai contoh, pendekatan ini banyak membantu saya semasa menulis skrip untuk menetapkan semula atribut "sementara" untuk fail dalam folder DFSR. Tetapi ini adalah cerita lain, yang akan saya cuba ceritakan dalam artikel lain. Saya sedang menunggu komen menarik daripada anda dan saya cadangkan untuk membuat tinjauan.