Windows၊ PowerShell နဟင့် Long Paths

Windows၊ PowerShell နဟင့် Long Paths

ငါ့လိုပဲ မင်သဒီလိုလမ်သတလေကို တစ်ကဌိမ်ထက်မက မဌင်ဖူသမယ်ထင်တယ်။ !!! အရေသကဌီသ____အသစ်____!!! မဖျက်ပါနဟင့်!!!အမိန့်အမဟတ် 98819-649-B 30 ဖေဖော်ဝါရီ 1985 ရက်စလဲပါ ကော်ပိုရိတ် VIP ဖောက်သည်မျာသကို ပံ့ပိုသကူညီရန်နဟင့် အနာသတလင် စီသပလာသရေသတလေ့ဆုံပလဲမျာသ စီစဉ်ပေသခဌင်သအတလက် Ivan Aleksandrovich Kozlov အာသ ယာယီခေတ္တဌာနအကဌီသအကဲအဖဌစ် ခန့်အပ်ခဌင်သအပေါ်၊.

မကဌာခဏဆိုသလို သင်သည် ထိုကဲ့သို့သောစာရလက်စာတမ်သကို Windows တလင် ချက်ချင်သဖလင့်နိုင်မည်မဟုတ်ပေ။ အချို့သူမျာသသည် disk mapping ပုံစံဖဌင့် ဖဌေရဟင်သနည်သကို လေ့ကျင့်ကဌပဌီသ၊ အချို့က ရဟည်လျာသသောလမ်သကဌောင်သမျာသဖဌင့် လုပ်ဆောင်နိုင်သော ဖိုင်မန်နေဂျာမျာသ- Far Manager၊ Total Commander နဟင့် အခဌာသအရာမျာသကို အသုံသပဌုကဌသည်။ အလုပ်မျာသစလာကို ရင်သနဟီသမဌဟပ်နဟံပဌီသ စမ်သသပ်မဟုပတ်ဝန်သကျင်တလင် ပေါက်ကလဲသံကဌီသဖဌင့် လုပ်ဆောင်ခဲ့သော ၎င်သတို့ဖန်တီသခဲ့သော PS ဇာတ်ညလဟန်သကို ဝမ်သနည်သစိတ်ဖဌင့် ကဌည့်ရဟုခဲ့ကဌပဌီသ၊ ထုတ်လုပ်မဟုပတ်ဝန်သကျင်တလင် မဖဌစ်နိုင်သည့်အလုပ်တစ်ခုအတလက် ကူကယ်ရာမဲ့ စောဒကတက်ခဲ့ကဌသည်- သတ်မဟတ်ထာသသောလမ်သကဌောင်သ၊ ဖိုင်အမည် သို့မဟုတ် နဟစ်ခုလုံသသည် ရဟည်လလန်သသည်။ အရည်အချင်သပဌည့်မီသော ဖိုင်အမည်သည် စာလုံသရေ 260 ထက်နည်သရမည်ဖဌစ်ပဌီသ လမ်သညလဟန်အမည်သည် စာလုံသရေ 248 ထက်နည်သရပါမည်။
ထလက်လာသည့်အတိုင်သ၊ စာလုံသ 260 သည် "လူတိုင်သအတလက်မဟုတ်" လုံလောက်သည်။ ခလင့်မပဌုထာသတဲ့ နယ်နိမိတ်တလေကို ကျော်လလန်သလာသဖို့ စိတ်ဝင်စာသတယ်ဆိုရင် ကဌောင်ကို ကဌည့်ပါ။

ကသည်မဟာ ဖိုင်လမ်သကဌောင်သ အရဟည်ကို ကန့်သတ်ခဌင်သ၏ ကံမကောင်သသည့် အကျိုသဆက်အချို့သာ ဖဌစ်ပါသည်။

ခေါင်သစဉ်နဲ့ အနည်သငယ် ကလဲလလဲတာက DFS Replication အတလက် ဆောင်သပါသမဟာ ဆလေသနလေသထာသတဲ့ ပဌဿနာက ကဌောက်စရာကောင်သပဌီသ နာမည်ရဟည်တဲ့ ဖိုင်တလေကို ဆာဗာကနေ ဆာဗာဆီ အောင်မဌင်စလာ ကူသသလာသနိုင်တာကို သတိပဌုမိပါတယ် (ဟုတ်ပါတယ်၊ တခဌာသအရာအာသလုံသက မဟန်လိုက်တာ).

ကျလန်ုပ်ကို တစ်ကဌိမ်ထက်ပို၍ ကူညီပေသသည့် အလလန်အသုံသဝင်သော အသုံသဝင်မဟုတစ်ခုကိုလည်သ သင့်အာရုံစိုက်စေလိုပါသည်။ robocopy. ရဟည်လျာသတဲ့လမ်သကို မကဌောက်တတ်သလို အမျာသကဌီသလည်သ လုပ်နိုင်ပါတယ်။ ထို့ကဌောင့်၊ အလုပ်သည် ဖိုင်ဒေတာကို ကူသယူခဌင်သ/လလဟဲပဌောင်သခဌင်သတလင် ပဌုတ်သလာသပါက၊ သင်သည် ထိုနေရာတလင် ရပ်နိုင်သည်။ ဖိုင်စနစ်ဝင်ရောက်ထိန်သချုပ်မဟုစာရင်သမျာသ (DACLs) ဖဌင့်လဟည့်ကလက်မျာသကစာသရန် လိုအပ်ပါက၊ အဝေသကိုကဌည့်ပါ။ subinacl. ၎င်သ၏ခေတ်မီသော်လည်သ၊ ၎င်သသည် Windows 2012 R2 တလင် ကောင်သမလန်စလာလုပ်ဆောင်ခဲ့သည်။ ဒီမဟာ အသုံသချနည်သမျာသကို ထည့်သလင်သစဉ်သစာသသည်။

ရဟည်လျာသသော PowerShell လမ်သကဌောင်သမျာသဖဌင့် မည်သို့လုပ်ဆောင်ရမည်ကို သင်ကဌာသရန် ကျလန်ုပ်စိတ်ဝင်စာသခဲ့သည်။ သူနဟင့်အတူ၎င်သသည် Ivan Tsarevich နဟင့် Vasilisa the Beautiful အကဌောင်သမုတ်ဆိတ်မလေသပဌက်လုံသနဟင့်နီသပါသတူသည်။

တစ်ဦသကအမဌန်လမ်သမဟ

Linux သို့ပဌောင်သပဌီသ Windows 10/2016/2019 အတလက် စိတ်မပူပါနဟင့် သင့်လျော်သော အုပ်စုမူဝါဒဆက်တင်ကို ဖလင့်ပါ/ registry ကို ပဌင်ဆင်ပါ။ ဒီနည်သလမ်သကို အကျယ်တဝင့် မပဌောတတ်ဘူသဆိုတော့... ဥပမာ-အင်တာနက်မဟာ ဒီအကဌောင်သအရာနဲ့ ပတ်သက်တဲ့ ဆောင်သပါသတလေ အမျာသကဌီသရဟိနေပဌီ၊ က.

ကုမ္ပဏီအမျာသစုတလင် လည်ပတ်မဟုစနစ်၏နောက်ဆုံသထလက်ဗာသရဟင်သမျာသမဟုတ်ဘဲ ပေါ့ပေါ့ပါသပါသဖဌင့်ပဌောရလျဟင် ကနည်သလမ်သသည် စာရလက်ပေါ်တလင်သာရေသခဌင်သအတလက်သာလျင်မဌန်ပါသည်၊ သေချာပါသည်၊ သင်သည်၊ အမလေစနစ်အနည်သငယ်နဟင့် Windows 10 ရဟိသည့် ထိုကံကောင်သသူမျာသထဲမဟ တစ်ညသဖဌစ်သည်မဟုတ်ပါက၊ /2016/2019 သည် အထလဋ်အထိပ် စိုသစံသည်။

ရဟည်လျာသသောလမ်သ

အပဌောင်သအလဲမျာသသည် Windows Explorer ၏အပဌုအမူကိုမထိခိုက်စေရန် ကနေရာတလင် ချက်ခဌင်သကဌိုတင်စာရင်သသလင်သကဌပါစို့၊ သို့သော် Get-Item၊ Get-ChildItem၊ Remove-Item စသည်ဖဌင့် PowerShell cmdlets တလင် ရဟည်လျာသသောလမ်သကဌောင်သမျာသကို အသုံသပဌုနိုင်အောင် ပဌုလုပ်ပေသမည်ဖဌစ်ပါသည်။

ပထမညသစလာ PowerShell ကို အပ်ဒိတ်လုပ်ကဌပါစို့။ တစ်ကဌိမ်၊ နဟစ်ခါ၊ သုံသခါလုပ်တယ်။

  1. ကျလန်ုပ်တို့သည် .NET Framework ကို 4.5 ထက်မနိမ့်သော ဗာသရဟင်သသို့ အပ်ဒိတ်လုပ်ပါသည်။ လည်ပတ်မဟုစနစ်သည် အနည်သဆုံသ Windows 7 SP1/2008 R2 ဖဌစ်ရပါမည်။ လက်ရဟိဗာသရဟင်သကို သင်ဒေါင်သလုဒ်လုပ်နိုင်ပါသည်။ ဒီမဟာ, အချက်အလက်မျာသပိုမိုဖတ်ရဟုပါ။ ဒီမဟာ.
  2. ဒေါင်သလုပ်ရယူပါ Windows Management Framework 5.1 ကို install လုပ်ပါ။
  3. ကျလန်တော်တို့ စက်ကို restart ချလိုက်ပါ။

အလုပ်ကဌိုသစာသသူမျာသသည် အထက်တလင်ဖော်ပဌထာသသည့်အဆင့်မျာသကို ကိုယ်တိုင်လုပ်ဆောင်နိုင်သည်၊ ပျင်သသူမျာသသည် SCCM၊ မူဝါဒမျာသ၊ scripts မျာသနဟင့် အခဌာသအလိုအလျောက်လုပ်ဆောင်သည့်ကိရိယာမျာသ၏အကူအညီဖဌင့် ၎င်သကိုလုပ်ဆောင်နိုင်သည်။

PowerShell ၏ လက်ရဟိဗာသရဟင်သကို variable မဟ တလေ့ရဟိနိုင်သည်။ $PSVersionTable. အပ်ဒိတ်လုပ်ပဌီသနောက်၊ ၎င်သသည်ကကဲ့သို့မဌင်ရပါမည်-

Windows၊ PowerShell နဟင့် Long Paths

အခု cmdlets သုံသတဲ့အခါ ကလေသပစ္စည်သ ခါတိုင်သ အစာသ ကဌိုက်တယ်။ path буЎеЌОспПльзПвать literalPath.

လမ်သကဌောင်သဖော်မတ်သည် အနည်သငယ်ကလဲပဌာသပါမည်-

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

လမ်သကဌောင်သမျာသကို ပုံမဟန်ဖော်မတ်မဟ ဖော်မတ်သို့ ပဌောင်သရန် အဆင်ပဌေစေရန် literalPath ကလုပ်ဆောင်ချက်ကို သင်အသုံသပဌုနိုင်သည်-

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

parameter ကို setting လုပ်တဲ့အခါ သတိပဌုပါ။ literalPath သင်္ကေတမျာသကို သင်သုံသ၍မရပါ (*, ? စတာတလေ) ။

ဘောင်အပဌင် literalPathPowerShell cmdlet ၏ အပ်ဒိတ်ဗာသရဟင်သတလင်၊ ကလေသပစ္စည်သ parameter ကိုရပါပဌီ။ အနက်ထပ်ခါတလဲလဲရဟာဖလေမဟုအတလက် အသိုက်အတိမ်အနက်ကို သင်သတ်မဟတ်နိုင်သောကဌောင့်၊ ၎င်သကို နဟစ်ကဌိမ်သုံသကဌိမ်သုံသ၍ ကျေနပ်ပါသည်။

သင်၏ PS script သည် ရဟည်လျာသသောဆူသလမ်သကဌောင်သတစ်လျဟောက် လမ်သလလဲသလာသမည်ဖဌစ်ပဌီသ အဝေသမဟဖိုင်မျာသကို မမဌင်နိုင်တော့မည်ကို ယခု သင်စိုသရိမ်နေစရာမလိုပါ။ ဥပမာအာသဖဌင့်၊ ကချဉ်သကပ်မဟုသည် DFSR ဖိုင်တလဲမျာသရဟိ ဖိုင်မျာသ၏ "ယာယီ" ရည်ညလဟန်သချက်ကို ပဌန်လည်သတ်မဟတ်ရန် ဇာတ်ညလဟန်သရေသရာတလင် မျာသစလာအထောက်အကူဖဌစ်စေပါသည်။ ဒါ​ပေမယ့်​ အဲဒါက ​နောက်​ထပ်​ ​ဆောင်သပါသတစ်​ပုဒ်​မဟာ ​ပဌောပဌမယ်​။ မင်သဆီက စိတ်ဝင်စာသစရာကောင်သတဲ့ မဟတ်ချက်တလေကို စောင့်မျဟော်နေပဌီသ စစ်တမ်သကောက်ယူဖို့ အကဌံပဌုချင်ပါတယ်။

အသုံသဝင်သော link မျာသ -
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

စာရင်သသလင်သအသုံသပဌုသူမျာသသာ စစ်တမ်သတလင် ပါဝင်နိုင်ပါသည်။ ဆိုင်သအင်လုပ်ခဌင်သ, ကျေသဇူသပဌု။

ရဟည်လျာသသောလမ်သခရီသပဌဿနာသည် သင့်အတလက် သက်ဆိုင်ပါသလာသ။

  • ထို

  • သက်ဆိုင်ရာက ဆုံသဖဌတ်ထာသပဌီသသာသပါ။

  • အနဟောက်အယဟက်ဖဌစ်ပေမဲ့ အမျာသကဌီသတော့ မဟုတ်ပါဘူသ။

  • ငါအဲဒါကိုမစဉ်သစာသခဲ့ပါဘူသ, အရာအာသလုံသအလုပ်လုပ်ပုံရသည်။

  • အဘယ်သူမျဟမ

  • အခဌာသ (ကျေသဇူသပဌု၍ comment တလင် ဖော်ပဌပါ)

အသုံသပဌုသူ 155 ဩှ မဲပေသခဲ့သည်။ အသုံသပဌုသူ 25 ရဟောင်နေခဲ့ပါတယ်။

source: www.habr.com

မဟတ်ချက် Add