Windows, PowerShell va uzoq yo'llar

Windows, PowerShell va uzoq yo'llar

O'ylaymanki, siz ham men kabi bunday yo'llarni bir necha bor ko'rgansiz !!! Muhim____Yangi____!!! O'chirmang!!!98819 yil 649 fevraldagi 30-1985-B-son buyrug'i Ivan Aleksandrovich Kozlovni korporativ VIP mijozlarni qo‘llab-quvvatlash va chetda ish uchrashuvlarini tashkil etish bo‘limi boshlig‘i vazifasini vaqtincha bajaruvchi etib tayinlash to‘g‘risida.doc.

Va ko'pincha siz Windows-da bunday hujjatni darhol ocholmaysiz. Ba'zi odamlar diskni xaritalash ko'rinishida vaqtinchalik echimni mashq qiladilar, boshqalari uzoq yo'llar bilan ishlay oladigan fayl menejerlaridan foydalanadilar: Far Manager, Total Commander va boshqalar. Va yana ko'plar o'zlari yaratgan, ko'p mehnat sarflangan va sinov muhitida portlash bilan ishlaydigan PS skriptini, ishlab chiqarish muhitida imkonsiz vazifa haqida nochor shikoyat qilishlarini qayg'u bilan tomosha qilishdi: Belgilangan yoʻl, fayl nomi yoki ikkalasi ham juda uzun. To'liq malakali fayl nomi 260 belgidan kam bo'lishi kerak va katalog nomi 248 belgidan kam bo'lishi kerak.
Ma'lum bo'lishicha, 260 ta belgi "nafaqat hamma uchun" etarli. Agar siz ruxsat etilgan chegaradan tashqariga chiqishga qiziqsangiz, mushukka murojaat qiling.

Fayl yo'li uzunligini cheklashning ba'zi baxtsiz oqibatlari:

Mavzudan biroz chetga chiqib, shuni ta'kidlaymanki, DFS replikatsiyasi uchun maqolada muhokama qilingan muammo dahshatli emas va uzun nomli fayllar serverdan serverga muvaffaqiyatli o'tadi (agar, albatta, qolgan hamma narsa to'g'ri bajarilgan).

Shuningdek, e'tiboringizni menga bir necha marta yordam bergan juda foydali yordamchi dasturga qaratmoqchiman robokopiya. U uzoq yo'llardan ham qo'rqmaydi va u ko'p narsaga qodir. Shuning uchun, agar vazifa fayl ma'lumotlarini nusxalash/o'tkazish bilan bog'liq bo'lsa, u erda to'xtashingiz mumkin. Agar siz fayl tizimiga kirishni boshqarish ro'yxatlari (DACL) bilan hiyla-nayranglarni o'ynashingiz kerak bo'lsa, uzoqroqqa qarang subinacl. Yoshiga qaramay, u Windows 2012 R2 da a'lo darajada ishladi. shu yerda qo‘llash usullari ko‘rib chiqiladi.

Men uzoq PowerShell yo'llari bilan ishlashni o'rgatishdan manfaatdor edim. U bilan Ivan Tsarevich va Go'zal Vasilisa haqidagi soqolli hazildagi kabi.

Tez yo'l

Linux-ga o'ting va Windows 10/2016/2019 haqida tashvishlanmang va tegishli guruh siyosati sozlamalarini yoqing/ro'yxatga olish kitobini o'zgartiring. Men bu usul haqida batafsil to'xtalmayman, chunki... Internetda ushbu mavzu bo'yicha ko'plab maqolalar mavjud, masalan, bu.

Aksariyat kompaniyalarda operatsion tizimlarning eng so'nggi versiyalari emas, yumshoq qilib aytganda ko'p ekanligini hisobga olsak, bu usul faqat qog'ozga yozish uchun tezdir, agar siz, albatta, eski tizimlar va Windows 10 ga ega bo'lgan omadlilardan biri bo'lmasangiz. /2016/2019 hukmronlik qiladi.

Uzoq yo'l

O'zgarishlar Windows Explorer-ning xatti-harakatlariga ta'sir qilmasligini, lekin PowerShell cmdletlarida Get-Item, Get-ChildItem, Remove-Item va boshqalar kabi uzoq yo'llardan foydalanishga imkon berishini darhol band qilaylik.

Birinchidan, PowerShell-ni yangilaymiz. Bir, ikki, uch marta bajariladi.

  1. Biz .NET Framework-ni 4.5 dan past bo'lmagan versiyaga yangilaymiz. Operatsion tizim kamida Windows 7 SP1/2008 R2 bo'lishi kerak. Joriy versiyani yuklab olishingiz mumkin shu yerda, batafsil ma'lumotni o'qing shu yerda.
  2. Yuklab olinmoqda va Windows Management Framework 5.1 ni o'rnating
  3. Biz mashinani qayta ishga tushiramiz.

Mehnatkash odamlar yuqorida tavsiflangan amallarni qo'lda bajarishlari mumkin, dangasa odamlar buni SCCM, siyosatlar, skriptlar va boshqa avtomatlashtirish vositalari yordamida amalga oshirishlari mumkin.

PowerShell ning joriy versiyasini o'zgaruvchidan topish mumkin $PSVersionTable. Yangilashdan so'ng u quyidagicha ko'rinishi kerak:

Windows, PowerShell va uzoq yo'llar

Endi cmdletlardan foydalanganda Get-ChildItem va odatdagi o'rniga shunga o'xshashlar Yo'l budem ispolzovat LiteralPath.

Yo'l formati biroz boshqacha bo'ladi:

Get-ChildItem -LiteralPath "?C:Folder"
Get-ChildItem -LiteralPath "?UNCServerNameShare"
Get-ChildItem -LiteralPath "?UNC192.168.0.10Share"

Yo'llarni odatiy formatdan formatga o'tkazish qulayligi uchun LiteralPath siz ushbu funktsiyadan foydalanishingiz mumkin:

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"}
}

Parametrni o'rnatishda unutmang LiteralPath Joker belgilardan foydalana olmaysiz (*, ? va hokazo.).

Parametrga qo'shimcha ravishda LiteralPath, PowerShell cmdletining yangilangan versiyasida Get-ChildItem parametr oldi chuqurlik, uning yordamida siz rekursiv qidiruv uchun joylashtirish chuqurligini o'rnatishingiz mumkin, men uni bir necha marta ishlatganman va mamnun bo'ldim.

Endi sizning PS skriptingiz uzoq tikanli yo'lda adashib ketishi va uzoqdagi fayllarni ko'ra olmasligidan xavotirlanishingiz shart emas. Masalan, DFSR papkalaridagi fayllarning "vaqtinchalik" atributini tiklash uchun skript yozishda bu yondashuv menga juda yordam berdi. Ammo bu boshqa hikoya, men uni boshqa maqolada aytib berishga harakat qilaman. Sizdan qiziqarli sharhlaringizni kutaman va so'rovnomada qatnashishingizni tavsiya qilaman.

Foydali havolalar:
docs.microsoft.com/ru-ru/dotnet/api/microsoft.powershell.commands.contentcommandbase.literalpath?view=powershellsdk-1.1.0
docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-5.1
stackoverflow.com/questions/46308030/handling-path-too-long-exception-with-new-psdrive/46309524
luisabreu.wordpress.com/2013/02/15/theliteralpath-parameter

So'rovda faqat ro'yxatdan o'tgan foydalanuvchilar ishtirok etishlari mumkin. tizimga kirishiltimos.

Uzoq yo'llar muammosi sizga tegishlimi?

  • ekan

  • Tegishli edi, lekin allaqachon qaror qilingan

  • Bu aralashadi, lekin ko'p emas

  • Men bu haqda o'ylamagan edim, hamma narsa ishlayotganga o'xshaydi

  • yo'q

  • Boshqalar (izohlarda ko'rsating)

155 foydalanuvchi ovoz berdi. 25 nafar foydalanuvchi betaraf qolgan.

Manba: www.habr.com

a Izoh qo'shish