Es domÄju, ka jÅ«s, tÄpat kÄ es, esat redzÄjuÅ”i Å”Ädus ceļus vairÄk nekÄ vienu reizi !!! SvarÄ«gi____Jaunums____!!! NedzÄst!!!PasÅ«tÄ«jums Nr.98819-649-B 30.gada 1985.februÄrÄ« par Ivana AleksandroviÄa Kozlova iecelÅ”anu par korporatÄ«vo VIP klientu atbalsta un biznesa tikÅ”anos organizÄÅ”anas nodaļas pagaidu pienÄkumu izpildÄ«tÄju.doc.
Un bieži vien jÅ«s nevarÄsit uzreiz atvÄrt Å”Ädu dokumentu sistÄmÄ Windows. Daži cilvÄki praktizÄ risinÄjumu diska kartÄÅ”anas veidÄ, citi izmanto failu pÄrvaldniekus, kas var strÄdÄt ar gariem ceļiem: Far Manager, Total Commander un tamlÄ«dzÄ«gi. Un daudzi citi ar skumjÄm skatÄ«jÄs, kÄ viÅu radÄ«tais PS skripts, kurÄ tika ieguldÄ«ts liels darbs un kas testa vidÄ darbojÄs ar lielu triecienu, ražoÅ”anas vidÄ bezpalÄ«dzÄ«gi sÅ«dzÄjÄs par neiespÄjamu uzdevumu: NorÄdÄ«tais ceļŔ, faila nosaukums vai abi ir pÄrÄk gari. PilnÄ«bÄ kvalificÄtajam faila nosaukumam ir jÄbÅ«t mazÄkam par 260 rakstzÄ«mÄm, un direktorija nosaukumam ir jÄbÅ«t mazÄkam par 248 rakstzÄ«mÄm.
KÄ izrÄdÄs, ar 260 rakstzÄ«mÄm pietiek āne tikai visiemā. Ja jÅ«s interesÄ pÄrkÄpt atļautÄs robežas, lÅ«dzu, skatiet kaÄ·i.
Å eit ir tikai dažas no neveiksmÄ«gajÄm sekÄm, ko rada faila ceļa garuma ierobežoÅ”ana:
serverÄ« ir mape, piemÄram, D:DataSharedAccounting, kas tiek koplietota, izmantojot SMB, un pievienota lietotÄjiem kÄ tÄ«kla disks S; lietotÄji izveido failus, kurus administratori/skripti nevar nolasÄ«t, kad tiem piekļūst lokÄli no servera, jo absolÅ«tais ceļŔ ir garÄks par tÄ«kla ceļu;
migrÄjot datus no citÄm sistÄmÄm, kurÄm ir mazÄk stingri ceļa garuma ierobežojumi, jaunajÄ vidÄ daži no tiem kļūs nepieejami bez dejoÅ”anas ar tamburÄ«nu;
Nedaudz novirzoties no tÄmas, atzÄ«mÄju, ka DFS replikÄcijai rakstÄ aplÅ«kotÄ problÄma nav briesmÄ«ga un faili ar gariem nosaukumiem veiksmÄ«gi pÄrvietojas no servera uz serveri (ja, protams, viss pÄrÄjais ir izdarÄ«ts pareizi).
Es arÄ« vÄlos vÄrst jÅ«su uzmanÄ«bu uz ļoti noderÄ«gu utilÄ«tu, kas man ir palÄ«dzÄjis vairÄk nekÄ vienu reizi robokopija. ViÅa arÄ« nebaidÄs no gariem ceļiem, un viÅa var daudz. TÄpÄc, ja uzdevums ir saistÄ«ts ar faila datu kopÄÅ”anu/pÄrsÅ«tÄ«Å”anu, varat pie tÄ apstÄties. Ja vÄlaties izspÄlÄt trikus ar failu sistÄmas piekļuves kontroles sarakstiem (DACL), skatieties prom apakÅ”kls. Neskatoties uz lielo vecumu, tas lieliski darbojÄs operÄtÄjsistÄmÄ Windows 2012 R2. Å eit tiek Åemtas vÄrÄ pielietoÅ”anas metodes.
Mani interesÄja mÄcÄ«t, kÄ strÄdÄt ar gariem PowerShell ceļiem. Ar viÅu tas ir gandrÄ«z kÄ bÄrdainÄ jokÄ par Ivanu CareviÄu un Vasilisu Skaisto.
Ätri
PÄrslÄdzieties uz Linux un neuztraucieties par operÄtÄjsistÄmu Windows 10/2016/2019 un iespÄjojiet atbilstoÅ”o grupas politikas iestatÄ«jumu / pielÄgojiet reÄ£istru. SÄ«kÄk pie Ŕīs metodes nekavÄÅ”os, jo... InternetÄ jau ir daudz rakstu par Å”o tÄmu, piemÄram, Å”is.
Å emot vÄrÄ, ka lielÄkajai daļai uzÅÄmumu ir daudzas, maigi izsakoties, nevis jaunÄkÄs operÄtÄjsistÄmu versijas, Ŕī metode ir Ätra tikai rakstÄ«Å”anai uz papÄ«ra, ja vien, protams, neesat viens no tiem laimÄ«gajiem, kam ir maz mantoto sistÄmu un Windows 10. /2016/2019 valda virsÅ« .
Garais ceļŔ
Å eit uzreiz izdarÄ«sim atrunu, ka izmaiÅas neietekmÄs Windows Explorer darbÄ«bu, bet ļaus PowerShell cmdlet izmantot garus ceļus, piemÄram, Get-Item, Get-ChildItem, Remove-Item utt.
Vispirms atjauninÄsim PowerShell. Tas tiek darÄ«ts vienu, divas, trÄ«s reizes.
MÄs atjauninÄm .NET Framework uz versiju, kas nav zemÄka par 4.5. OperÄtÄjsistÄmai ir jÄbÅ«t vismaz Windows 7 SP1/2008 R2. JÅ«s varat lejupielÄdÄt paÅ”reizÄjo versiju Å”eit, lasiet vairÄk informÄcijas Å”eit.
StrÄdÄ«gi cilvÄki iepriekÅ” aprakstÄ«tÄs darbÄ«bas var veikt manuÄli, slinki cilvÄki to var izdarÄ«t ar SCCM, politiku, skriptu un citu automatizÄcijas rÄ«ku palÄ«dzÄ«bu.
PaÅ”reizÄjo PowerShell versiju var atrast no mainÄ«gÄ $PSVersionTable. PÄc atjauninÄÅ”anas tam vajadzÄtu izskatÄ«ties apmÄram Å”Ädi:
Tagad, izmantojot cmdlet Get-ChildItem un tamlÄ«dzÄ«gi parastÄ vietÄ taka mÄs izmantosim literalPath.
Ceļu konvertÄÅ”anas ÄrtÄ«bai no parastÄ formÄta uz formÄtu literalPath varat izmantot Å”o funkciju:
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"}
}
LÅ«dzu, Åemiet vÄrÄ, ka, iestatot parametru literalPath JÅ«s nevarat izmantot aizstÄjÄjzÄ«mes (*, ? un tÄ tÄlÄk).
Papildus parametram literalPath, atjauninÄtajÄ PowerShell cmdlet versijÄ Get-ChildItem ieguva parametru Dziļums, ar kuru var iestatÄ«t ligzdoÅ”anas dziļumu rekursÄ«vai meklÄÅ”anai, izmantoju pÄris reizes un biju apmierinÄts.
Tagad jums nav jÄuztraucas, ka jÅ«su PS skripts apmaldÄ«sies pa garo sarežģīto ceļu un nevarÄs redzÄt tÄlus failus. PiemÄram, Ŕī pieeja man ļoti palÄ«dzÄja, rakstot skriptu, lai atiestatÄ«tu DFSR mapÄs esoÅ”o failu āpagaiduā atribÅ«tu. Bet tas ir cits stÄsts, ko es mÄÄ£inÄÅ”u pastÄstÄ«t citÄ rakstÄ. Gaidu interesantus komentÄrus no jums un iesaku piedalÄ«ties aptaujÄ.