Windows, PowerShell, u Mogħdijiet twal

Windows, PowerShell, u Mogħdijiet twal

Naħseb li inti, bħali, ħafna drabi rajt mogħdijiet tal-forma !!! Importanti____Ġdid____!!! Tħassarx!!!Ordni Nru 98819-649-B tat-30 ta' Frar, 1985 dwar il-ħatra ta' Ivan Aleksandrovich Kozlov bħala l-aġent kap tad-dipartiment għall-appoġġ ta' klijenti korporattivi VIP u l-organizzazzjoni ta' laqgħat tan-negozju fuq il-ġenb.doc.

U ħafna drabi ma tkunx tista' tiftaħ dokument bħal dan fil-Windows minnufih. Xi ħadd jipprattika workaround fil-forma ta 'mapping tad-disk, xi ħadd juża file managers li jistgħu jaħdmu ma' mogħdijiet twal: Far Manager, Total Commander u simili. U ħafna aktar sfortunatament raw kif l-iskript tal-PS li ħolqu, li fih ġie investit ħafna xogħol u li ħadem b'daqqa fl-ambjent tat-test, fl-ambjent tal-ġlied ilmenta bla saħħa dwar kompitu impossibbli: Il-mogħdija speċifikata, l-isem tal-fajl, jew it-tnejn huma twal wisq. L-isem tal-fajl ikkwalifikat bis-sħiħ għandu jkun inqas minn 260 karattru, u l-isem tad-direttorju għandu jkun inqas minn 248 karattru.
Kif irriżulta, 260 karattru huwa biżżejjed "mhux għal kulħadd biss." Jekk inti interessat li tmur lil hinn mill-konfini ta 'dak li huwa permess, nistaqsi taħt cat.

Hawn huma biss ftit mill-konsegwenzi sfortunati tal-limitazzjoni tat-tul tal-mogħdija tal-fajl:

Niddevja ftit mis-suġġett, ninnota li għar-Replikazzjoni DFS, il-problema kkunsidrata fl-artiklu mhix terribbli u fajls b'ismijiet twal jivvjaġġaw b'suċċess minn server għal server (sakemm, ovvjament, inkella inti isir sewwa).

Nixtieq ukoll niġbed l-attenzjoni għal utilità utli ħafna li għenitni aktar minn darba robokopja. Hi wkoll ma tibżax minn mogħdijiet twal, u taf ħafna. Għalhekk, jekk il-kompitu jaqa 'għall-ikkupjar / it-trasferiment tad-dejta tal-fajl, tista' tieqaf fuqha. Jekk għandek bżonn taħsad mal-listi tal-kontroll tal-aċċess tas-sistema tal-fajls (DACLs), ħares 'il bogħod subinacl. Minkejja l-età konsiderevoli tiegħu, wera ruħu perfettament fuq Windows 2012 R2. Hawnhekk huma kkunsidrati metodi ta' applikazzjoni.

Kont interessat ukoll li nitgħallem kif naħdem ma' mogħdijiet twal ta' PowerShell. Miegħu, kważi bħal f’ċajta bid-daqna dwar Ivan Tsarevich u Vasilisa is-Sabiħa.

Mod rapidu

Aqleb għal Linux u tinkwetax dwar Windows 10/2016/2019 u ppermetti l-issettjar xieraq tal-politika tal-grupp/tweak tar-reġistru. Mhux se nitkellem fuq dan il-metodu fid-dettall, għaliex. diġà hemm ħafna artikli fuq in-net dwar dan is-suġġett, pereżempju, dan.

Meta wieħed iqis li fil-biċċa l-kbira tal-kumpaniji hemm ħafna, biex ngħiduha ħafif, mhux verżjonijiet ġodda tas-sistemi operattivi, dan il-metodu huwa rapidu biss għall-kitba fuq il-karta, sakemm, ovvjament, inti ma tkunx waħda minn dawk xxurtjati li għandhom ftit sistemi wirt u Windows 10/2016/2019 renju .

triq twila

Hawnhekk aħna immedjatament nagħmlu riżerva li l-bidliet mhux se jaffettwaw l-imġieba ta 'Windows Explorer, iżda se jagħmluha possibbli li jintużaw mogħdijiet twal f'cmdlets PowerShell, bħal Get-Item, Get-ChildItem, Remove-Item, eċċ.

L-ewwel, ejja naġġornaw PowerShell. Dan isir wieħed, tnejn, tlieta.

  1. Aħna naġġornaw il-.NET Framework għal verżjoni ta' mill-inqas 4.5. Is-sistema operattiva trid tkun mill-inqas Windows 7 SP1/2008 R2. Il-verżjoni attwali tista' titniżżel hawnaqra aktar informazzjoni hawn.
  2. Niżżel u tinstalla Windows Management Framework 5.1
  3. Aħna nibdew mill-ġdid il-magna.

Dawk li jaħdmu iebes jistgħu jagħmlu l-passi ta 'hawn fuq manwalment, dawk għażżien jistgħu jagħmluha bl-għajnuna ta' SCCM, politiki, skripts u għodod oħra ta 'awtomazzjoni.

Il-verżjoni attwali ta 'PowerShell tista' tinstab mill-varjabbli $PSVersionTable. Wara l-aġġornament għandu jidher bħal dan:

Windows, PowerShell, u Mogħdijiet twal

Issa meta tuża cmdlets Get-ChildItem u oħrajn bħalu flok is-soltu Path aħna se nużaw LiteralPath.

Il-format tal-mogħdijiet se jkun kemmxejn differenti:

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

Għall-konvenjenza tal-konverżjoni mogħdijiet mill-format tas-soltu għall-format LiteralPath tista' tuża din il-funzjoni:

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

Jekk jogħġbok innota li meta tissettja l-parametru LiteralPath wildcards ma jistgħux jintużaw (*, ? eċċ.).

Minbarra l-parametru LiteralPath, fis-cmdlet PowerShell aġġornat Get-ChildItem parametru riċevut Fond, li biha tista 'tissettja l-fond tal-bejta għal tfittxija rikorsiva, użajtha ftit drabi u kont sodisfatt.

Issa ma tistax tibża' li l-PS-script tiegħek se jmur ħażin minn triq twila tax-xewk u mhux se tara fajls imbiegħda. Pereżempju, dan l-approċċ għenni ħafna meta nikteb skript biex reset l-attribut "temporanju" għall-fajls fil-folders DFSR. Iżda din hija storja oħra, li ser nipprova ngħid f'artiklu ieħor. Qed nistenna kummenti interessanti mingħandkom u nissuġġerixxi li tagħmel stħarriġ.

Ħoloq utli:
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

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

Il-problema tal-mogħdijiet twal hija rilevanti għalik?

  • Iva

  • Kien rilevanti, iżda diġà deċiż

  • Jinterferixxi, iżda mhux ħafna

  • Ma ħsibtx dwarha, kollox jidher li qed jaħdem

  • Nru

  • Oħrajn (speċifika fil-kummenti)

Ivvutaw 155 utent. 25 utenti astjenew.

Sors: www.habr.com

Żid kumment