Я пытаюсь создать script, где я буду искать файловые серверы для не унаследованных разрешений. В результате я столкнулся с предел 260 символов для имен файлов. Предложение, которое я видел, что, по моему мнению, помогло бы, пару раз состояло в том, чтобы создать несколько ненастоящих PS-накопителей на пару уровней и запросить их.
Проблема в том, что когда я использую Get-ChildItem
для новых PS Drives, он возвращает объект с полным сетевым путем и не использует имя, которое я ему назначил.
# Cycle the folders
Get-ChildItem $rootPath -Directory | select -first 1 | ForEach-Object{
$target = $_
# Create a PS Drive for each sub directory and get all the folders
[void](New-PSDrive -Name $target.Name -PSProvider FileSystem $target.FullName)
# Get the file objects.
Get-ChildItem "$($target.Name):\" -Recurse
}
Я уверен, что если бы я создал несколько подходящих сетевых дисков с буквой диска, у меня не было бы этой проблемы.
Надеюсь, я просто не пропустил его, но Technet for New-PSDrive не был на 100% понятен в этом сценарии.
Я ищу способ сделать ps-диск и ссылаться на папки, возвращая пути относительно нового имени диска. Рассмотрим выход из psdrive, который я сделал (G:), затем один из моих подключенных сетевых дисков (M:).
PS M:\> Get-ChildItem G:\
Directory: \\server01\COMMON\Folder
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 6/18/2011 8:14 AM Folder 1
d---- 6/18/2011 8:14 AM Folder 2
PS M:\> Get-ChildItem M:\
Directory: M:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 5/8/2015 11:00 AM Backup
d---- 5/8/2015 11:00 AM covers
d---- 5/8/2015 11:00 AM drop
d---- 5/8/2015 11:00 AM Expense
Я знаю, что для моей точной ситуации существует множество обходных путей, но я хотел бы понять поведение, которое я показываю с помощью New-PSDrive
.