У меня есть слишком длинные каталоги (удар по ограничению на 260 символов), поэтому я пытаюсь сопоставить путь к буквенному приводу (T :).Powershell Use Mapped Drive As Root Path
То, что я нахожу, слишком длинное имя пути, вернуло .TargetName записей об ошибках поиска в корневом каталоге общего ресурса файла. Таким образом, длинное имя пути находится в $ errorRecord.
Это код, у меня есть на данный момент:
foreach ($record in $errorRecord)
{
New-PSDrive -Name "T" -PSProvider FileSystem -Root ($record.CategoryInfo).TargetName -Persist
$path = "T:\"
$ACLs = get-acl -path $path -recurse |
ForEach-Object { $_.Access } |
Where {$_.IdentityReference -notlike "*BUILTIN*" -and $_.IdentityReference -notlike "*NT AUTHORITY*"}
Foreach ($ACL in $ACLs)
{
$OutInfo = $Folder.Fullname + "," + $ACL.IdentityReference
Add-Content -Value $OutInfo -Path "C:\Permissions2.csv"
}
Remove-PSDrive T
}
Так что получает путь к файлу, устанавливает его в T: \, а затем (предполагается) получить информацию из рекурсивных папок под диск T: \.
Что выводится, однако, это полное имя пути диска T: \ с его информацией о разрешении, но не идет ниже этой точки - предположительно из-за предела символа.
Как изменить выход, чтобы быть только буквенным диском «T: \», чтобы он, надеюсь, копал глубже? Спасибо за любую помощь.
Вид. С помощью этого метода вам нужно будет вручную определить путь длины символа и поместить его в него? –