విండోస్, పవర్‌షెల్ మరియు లాంగ్ పాత్‌లు

విండోస్, పవర్‌షెల్ మరియు లాంగ్ పాత్‌లు

మీరు, నాలాగే, తరచుగా రూపం యొక్క మార్గాలను చూశారని నేను అనుకుంటున్నాను !!! ముఖ్యమైన____కొత్త____!!! తొలగించవద్దు!!! ఆర్డర్ నెం. 98819-649-B తేదీ ఫిబ్రవరి 30, 1985 ఇవాన్ అలెక్సాండ్రోవిచ్ కోజ్లోవ్ కార్పొరేట్ VIP క్లయింట్‌లకు మద్దతు ఇవ్వడానికి మరియు వ్యాపార సమావేశాలను సైడ్‌లైన్స్‌లో నిర్వహించడానికి డిపార్ట్‌మెంట్ యాక్టింగ్ హెడ్‌గా నియమించడంపై..

మరియు తరచుగా మీరు అటువంటి పత్రాన్ని విండోస్‌లో వెంటనే తెరవలేరు. ఎవరైనా డిస్క్ మ్యాపింగ్ రూపంలో పరిష్కారాన్ని ప్రాక్టీస్ చేస్తారు, ఎవరైనా పొడవైన మార్గాలతో పని చేయగల ఫైల్ మేనేజర్‌లను ఉపయోగిస్తారు: ఫార్ మేనేజర్, టోటల్ కమాండర్ మరియు ఇలాంటివి. మరియు చాలా మంది విచారంగా వారు సృష్టించిన PS స్క్రిప్ట్‌ని వీక్షించారు, దీనిలో చాలా పని పెట్టుబడి పెట్టబడింది మరియు పరీక్ష వాతావరణంలో బ్యాంగ్‌తో పని చేసింది, పోరాట వాతావరణంలో అసాధ్యమైన పని గురించి నిస్సహాయంగా ఫిర్యాదు చేసింది: పేర్కొన్న మార్గం, ఫైల్ పేరు లేదా రెండూ చాలా పొడవుగా ఉన్నాయి. పూర్తి అర్హత కలిగిన ఫైల్ పేరు తప్పనిసరిగా 260 అక్షరాల కంటే తక్కువగా ఉండాలి మరియు డైరెక్టరీ పేరు తప్పనిసరిగా 248 అక్షరాల కంటే తక్కువగా ఉండాలి.
అది ముగిసినట్లుగా, 260 అక్షరాలు సరిపోతాయి "అందరికీ మాత్రమే కాదు." మీరు అనుమతించబడిన సరిహద్దులను దాటి వెళ్లడానికి ఆసక్తి కలిగి ఉంటే, నేను పిల్లి కింద అడుగుతాను.

ఫైల్ పాత్ పొడవును పరిమితం చేయడం వల్ల కలిగే దురదృష్టకరమైన కొన్ని పరిణామాలు ఇక్కడ ఉన్నాయి:

టాపిక్ నుండి కొంచెం వైదొలిగి, DFS రెప్లికేషన్ కోసం వ్యాసంలో పరిగణించబడిన సమస్య భయంకరమైనది కాదని మరియు పొడవైన పేర్లతో ఉన్న ఫైల్‌లు సర్వర్ నుండి సర్వర్‌కు విజయవంతంగా ప్రయాణిస్తాయని నేను గమనించాను (అయితే, మీరు తప్ప సరిగ్గా జరిగింది).

నాకు ఒకటి కంటే ఎక్కువసార్లు సహాయం చేసిన చాలా ఉపయోగకరమైన యుటిలిటీకి కూడా నేను దృష్టిని ఆకర్షించాలనుకుంటున్నాను రోబోకాపీ. ఆమె కూడా పొడవైన మార్గాలకు భయపడదు మరియు ఆమెకు చాలా తెలుసు. అందువల్ల, ఫైల్ డేటాను కాపీ చేయడం / బదిలీ చేయడం పనికి వస్తే, మీరు దాని వద్ద ఆపివేయవచ్చు. మీరు ఫైల్ సిస్టమ్ యాక్సెస్ నియంత్రణ జాబితాలతో (DACLలు) గందరగోళానికి గురి కావాలంటే, దూరంగా చూడండి subinacl. దాని గణనీయమైన వయస్సు ఉన్నప్పటికీ, ఇది Windows 2012 R2లో సంపూర్ణంగా చూపబడింది. ఇక్కడ అప్లికేషన్ యొక్క పద్ధతులు పరిగణించబడతాయి.

పొడవాటి పవర్‌షెల్ మార్గాలతో ఎలా పని చేయాలో తెలుసుకోవడానికి కూడా నాకు ఆసక్తి ఉంది. అతనితో, దాదాపు ఇవాన్ సారెవిచ్ మరియు వాసిలిసా ది బ్యూటిఫుల్ గురించి గడ్డం ఉన్న జోక్‌లో వలె.

త్వరిత మార్గం

Linuxకి మారండి మరియు Windows 10/2016/2019 గురించి చింతించకండి మరియు తగిన సమూహ పాలసీ సెట్టింగ్/రిజిస్ట్రీ సర్దుబాటును ప్రారంభించండి. నేను ఈ పద్ధతిపై వివరంగా నివసించను, ఎందుకంటే. ఈ అంశంపై నెట్‌లో ఇప్పటికే చాలా కథనాలు ఉన్నాయి, ఉదాహరణకు, .

చాలా కంపెనీలలో చాలా ఉన్నాయి, తేలికగా చెప్పాలంటే, ఆపరేటింగ్ సిస్టమ్‌ల యొక్క తాజా వెర్షన్‌లు కాదు, ఈ పద్ధతి కాగితంపై వ్రాయడానికి మాత్రమే శీఘ్రంగా ఉంటుంది, అయితే, కొన్ని లెగసీ సిస్టమ్‌లు మరియు విండోస్ ఉన్న అదృష్టవంతులలో మీరు ఒకరు. 10/2016/2019 పాలన.

చాలా దూరం

మార్పులు Windows Explorer యొక్క ప్రవర్తనను ప్రభావితం చేయవని ఇక్కడ మేము వెంటనే రిజర్వేషన్ చేస్తాము, కానీ PowerShell cmdletsలో Get-Item, Get-ChildItem, Remove-Item మొదలైన లాంగ్ పాత్‌లను ఉపయోగించడం సాధ్యమవుతుంది.

ముందుగా, PowerShellని అప్‌డేట్ చేద్దాం. ఇది ఒకటి, రెండు, మూడు పూర్తయింది.

  1. మేము .NET ఫ్రేమ్‌వర్క్‌ని కనీసం 4.5 వెర్షన్‌కి అప్‌డేట్ చేస్తాము. ఆపరేటింగ్ సిస్టమ్ తప్పనిసరిగా కనీసం Windows 7 SP1/2008 R2 అయి ఉండాలి. ప్రస్తుత సంస్కరణను డౌన్‌లోడ్ చేసుకోవచ్చు ఇక్కడమరింత సమాచారం చదవండి ఇక్కడ.
  2. డౌన్లోడ్ మరియు విండోస్ మేనేజ్‌మెంట్ ఫ్రేమ్‌వర్క్ 5.1ని ఇన్‌స్టాల్ చేయండి
  3. మేము యంత్రాన్ని రీబూట్ చేస్తాము.

కష్టపడి పనిచేసేవారు పై దశలను మాన్యువల్‌గా చేయగలరు, సోమరులు SCCM, విధానాలు, స్క్రిప్ట్‌లు మరియు ఇతర ఆటోమేషన్ సాధనాల సహాయంతో దీన్ని చేయవచ్చు.

PowerShell యొక్క ప్రస్తుత వెర్షన్ వేరియబుల్ నుండి కనుగొనవచ్చు $PSVersionTable. నవీకరణ తర్వాత ఇది ఇలా ఉండాలి:

విండోస్, పవర్‌షెల్ మరియు లాంగ్ పాత్‌లు

ఇప్పుడు cmdlets ఉపయోగిస్తున్నప్పుడు హార్థిక ChildItem మరియు ఇతరులు మామూలుగా కాకుండా అతనిని ఇష్టపడతారు మార్గం మేము ఉపయోగిస్తాము లిటరల్ పాత్.

మార్గాల ఆకృతి కొద్దిగా భిన్నంగా ఉంటుంది:

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

సాధారణ ఫార్మాట్ నుండి ఫార్మాట్‌కు మార్గాలను మార్చే సౌలభ్యం కోసం లిటరల్ పాత్ మీరు ఈ ఫంక్షన్‌ని ఉపయోగించవచ్చు:

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

పరామితిని సెట్ చేసేటప్పుడు దయచేసి గమనించండి లిటరల్ పాత్ వైల్డ్‌కార్డ్‌లు ఉపయోగించబడవు (*, ? మొదలైనవి).

పరామితికి అదనంగా లిటరల్ పాత్, నవీకరించబడిన PowerShell cmdletలో హార్థిక ChildItem అందుకున్న పరామితి లోతు, దీనితో మీరు పునరావృత శోధన కోసం గూడు లోతును సెట్ చేయవచ్చు, నేను దానిని రెండు సార్లు ఉపయోగించాను మరియు సంతృప్తి చెందాను.

ఇప్పుడు మీరు మీ PS స్క్రిప్ట్ సుదీర్ఘమైన ముళ్ల మార్గం నుండి తప్పుదారి పట్టిస్తుందని మరియు సుదూర ఫైల్‌లను చూడదని మీరు భయపడలేరు. ఉదాహరణకు, DFSR ఫోల్డర్‌లలోని ఫైల్‌ల "తాత్కాలిక" లక్షణాన్ని రీసెట్ చేయడానికి స్క్రిప్ట్‌ను వ్రాసేటప్పుడు ఈ విధానం నాకు చాలా సహాయపడింది. కానీ ఇది మరొక కథ, నేను మరొక వ్యాసంలో చెప్పడానికి ప్రయత్నిస్తాను. నేను మీ నుండి ఆసక్తికరమైన వ్యాఖ్యల కోసం ఎదురు చూస్తున్నాను మరియు నేను సర్వే చేయాలని సూచిస్తున్నాను.

ఉపయోగకరమైన లింకులు:
docs.microsoft.com/en-us/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

నమోదు చేసుకున్న వినియోగదారులు మాత్రమే సర్వేలో పాల్గొనగలరు. సైన్ ఇన్ చేయండిదయచేసి.

పొడవైన మార్గాల సమస్య మీకు సంబంధించినదా?

  • అవును

  • సంబంధితంగా ఉంది, కానీ ఇప్పటికే నిర్ణయించుకుంది

  • జోక్యం చేసుకుంటుంది, కానీ ఎక్కువ కాదు

  • దాని గురించి ఆలోచించలేదు, ప్రతిదీ పని చేస్తున్నట్లు అనిపిస్తుంది

  • ఇతర (కామెంట్లలో పేర్కొనండి)

155 మంది వినియోగదారులు ఓటు వేశారు. 25 మంది వినియోగదారులు దూరంగా ఉన్నారు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి