Windows, PowerShell ва Роҳҳои дароз

Windows, PowerShell ва Роҳҳои дароз

Ман фикр мекунам, ки шумо низ мисли ман на як бору ду бор чунин пайроҳаҳоро дидаед !!! Муҳим____Нав____!!! нест кунед!!! Фармони раками 98819-649-Б аз 30 феврали соли 1985. Дар бораи таъини Иван Александрович Козлов муваққатан иҷрокунандаи вазифаи сардори шӯъбаи дастгирии мизоҷони корпоративии VIP ва ташкили вохӯриҳои корӣ дар канор.doc.

Ва аксар вақт шумо наметавонед ин гуна ҳуҷҷатро дар Windows кушоед. Баъзе одамон ҳалли худро дар шакли харитасозии диск машқ мекунанд, дигарон аз менеҷерҳои файлӣ истифода мебаранд, ки метавонанд бо роҳҳои дароз кор кунанд: Far Manager, Total Commander ва ғайра. Ва боз бисёриҳо бо андӯҳ менигаристанд, ки скрипти PS-и эҷодкардаи онҳо, ки ба он корҳои зиёде сарф шуда буд ва дар муҳити озмоишӣ бо як таркиш кор мекард, дар муҳити истеҳсолӣ беихтиёр аз вазифаи номумкин шикоят мекарданд: Роҳи муайяншуда, номи файл ё ҳарду хеле дарозанд. Номи пурраи файл бояд аз 260 аломат ва номи директория камтар аз 248 аломат бошад.
Тавре маълум мешавад, 260 аломат "на танҳо барои ҳама" кифоя аст. Агар шумо ба берун рафтан аз ҳудуди иҷозатдодашуда таваҷҷӯҳ дошта бошед, лутфан ба гурба муроҷиат кунед.

Инҳоянд танҳо баъзе аз оқибатҳои нохуши маҳдуд кардани дарозии роҳи файл:

Каме аз мавзӯъ дур шуда, ман қайд мекунам, ки барои Replication DFS мушкилоти дар мақола баррасӣшуда даҳшатнок нест ва файлҳои дорои номҳои дароз аз сервер ба сервер бомуваффақият мегузаранд (агар, албатта, ҳама чизи дигар дуруст кард).

Ман инчунин мехоҳам таваҷҷӯҳи шуморо ба як утилитаи хеле муфид ҷалб намоям, ки ба ман на як маротиба кӯмак кардааст робот. Вай инчунин аз роххои дуру дароз наметарсад ва аз ухдаи бисьёр корхо баромада метавонад. Аз ин рӯ, агар вазифа ба нусхабардорӣ/интиқоли маълумотҳои файлӣ поён ёбад, шумо метавонед дар он ҷо бас кунед. Агар ба шумо лозим ояд, ки ҳилаҳоро бо рӯйхатҳои назорати дастрасии системаи файлӣ (DACL) бозӣ кунед, ба дур нигоҳ кунед субинакл. Сарфи назар аз синну солаш, он дар Windows 2012 R2 аъло кор кард. дар ин ҷо усулҳои татбиқи он баррасӣ мешаванд.

Ман ба омӯхтани тарзи кор бо роҳҳои дарози PowerShell таваҷҷӯҳ доштам. Бо ӯ ин тақрибан дар як шӯхии ришдор дар бораи Иван Царевич ва Василисаи Зебо аст.

Роҳи зуд

Ба Linux гузаред ва дар бораи Windows 10/2016/2019 хавотир нашавед ва танзими сиёсати гурӯҳиро фаъол созед/реестрро танзим кунед. Дар бораи ин усул ба таври муфассал таваққуф намекунам, зеро... Дар Интернет аллакай мақолаҳои зиёде дар ин мавзӯъ мавҷуданд, масалан, ин.

Бо дарназардошти он, ки аксари ширкатҳо бисёранд, нармтар карда гӯем, на версияҳои охирини системаҳои оператсионӣ, ин усул танҳо барои навиштан дар рӯи коғаз зуд аст, ба шарте ки шумо яке аз он хушбахтоне набошед, ки системаҳои кӯҳна ва Windows 10-и кам доранд. /2016/2019 ҳукмронӣ мекунад.

Рохи дароз

Биёед фавран қайд кунем, ки тағирот ба рафтори Windows Explorer таъсир намерасонад, аммо имкон медиҳад, ки роҳҳои дароз дар cmdlets PowerShell истифода шаванд, ба монанди Get-Item, Get-ChildItem, Remove-Item ва ғайра.

Аввалан, биёед PowerShell-ро навсозӣ кунем. Он як, ду, се маротиба анҷом дода мешавад.

  1. Мо .NET Framework-ро ба версияи на камтар аз 4.5 навсозӣ мекунем. Системаи оператсионӣ бояд ҳадди аққал Windows 7 SP1/2008 R2 бошад. Шумо метавонед версияи ҷорӣро зеркашӣ кунед дар ин ҷо, маълумоти бештар хонед дар ин ҷо.
  2. Зеркашӣ ва насби Windows Management Framework 5.1
  3. Мо мошинро бозоғоз мекунем.

Одамони меҳнатдӯст метавонанд қадамҳои дар боло тавсифшударо дастӣ иҷро кунанд, танбалҳо метавонанд онро бо ёрии SCCM, сиёсатҳо, скриптҳо ва дигар воситаҳои автоматизатсия иҷро кунанд.

Версияи ҷории PowerShell-ро аз тағирёбанда пайдо кардан мумкин аст $PSVersionTable. Пас аз навсозӣ он бояд чунин бошад:

Windows, PowerShell ва Роҳҳои дароз

Ҳоло ҳангоми истифодаи cmdlets Get-ChildItem ва монанди инҳо ба ҷои муқаррарӣ Роҳ будем исползовать 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"}
}

Лутфан қайд кунед, ки ҳангоми муқаррар кардани параметр LiteralPath Шумо наметавонед аломатҳои ҷонишинро истифода баред (*, ? ва ғайра).

Илова ба параметр LiteralPath, дар версияи навшудаи cmdlet PowerShell Get-ChildItem параметр гирифт умқи, ки бо он шумо метавонед умқи лонаро барои ҷустуҷӯи рекурсивӣ муқаррар кунед, ман онро якчанд маротиба истифода кардам ва қаноатманд будам.

Акнун ба шумо хавотир нашавед, ки скрипти PS-и шумо дар роҳи тӯлонии тӯлонӣ гумроҳ мешавад ва файлҳои дурро дида наметавонад. Масалан, ин равиш ба ман ҳангоми навиштани скрипт барои аз нав барқарор кардани атрибути "муваққатӣ"-и файлҳо дар ҷузвдонҳои DFSR ба ман кӯмаки зиёд расонд. Аммо ин як қиссаи дигар аст, ки ман кӯшиш мекунам дар мақолаи дигар нақл кунам. Ман бесаброна шарҳҳои ҷолибро аз шумо интизорам ва тавсия медиҳам, ки дар пурсиш иштирок кунед.

Пайвандҳои муфид:
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

Танҳо корбарони сабтиномшуда метавонанд дар пурсиш иштирок кунанд. даромад, Лутфан.

Оё проблемаи роххои дароз ба шумо дахл дорад?

  • он

  • Муносиб буд, аммо аллакай тасмим гирифта шудааст

  • Ин халал мерасонад, аммо на он қадар зиёд

  • Ман дар ин бора фикр намекардам, ҳама чиз кор мекунад

  • нест

  • Дигар (лутфан дар шарҳҳо нишон диҳед)

155 корбар овоз доданд. 25 корбар худдорӣ карданд.

Манбаъ: will.com

Илова Эзоҳ