Thank you. I've seen that article on using robocopy - it's where I got
the idea of generating the file listing initially. I've looked at the
alphafs site, and at least one other (can't remember the name right
now), but haven't seen the ntfssecurity site before.

Without installing the module, I can't tell if there's a way to get
the hashing done that I want. I'll check it out.

Thanks,

Kurt

On Wed, Dec 30, 2015 at 1:48 PM, Weber, Mark A <[email protected]> wrote:
> I don't believe PowerShell supports Unicode paths (I can't find the article 
> where I read that).
>
> If you are just looking for size and name, then this may work for you:
> http://learn-powershell.net/2013/04/01/list-all-files-regardless-of-260-character-path-restriction-using-powershell-and-robocopy/
>
> if you want more, you might want to look at the ntfssecurity module 
> (https://ntfssecurity.codeplex.com/) or the library it is based on (alphafs - 
> http://alphafs.alphaleonis.com/ ) - this is what I use against our NetApp SMB 
> shares
>
> hth,
> m
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] 
> On Behalf Of Kurt Buff
> Sent: Wednesday, December 30, 2015 3:13 PM
> To: [email protected]
> Subject: [powershell] Long file names - again...
>
> All,
>
> If anyone can help, I'd much appreciate it.
>
> I'm picking up where I left off some time ago in auditing our file server.
>
> I used robocopy to generate a list of files for each drive on our file server 
> - all told over 10.3m lines, massaged the output (with findstr) to break it 
> up by drive letter and to remove directories and things like $recycle.bin and 
> 'system volume', then further massaged the output to remove the extraneous 
> robocopy markings. I had to break it into smaller files by partition because 
> processing the file in powershell overran RAM on a 16g machine.
>
> I then took each line (which looked like, e.g.
> i:\somedirectory\otherdirectory\file), then prepended '\\?\' to each line), 
> because some number of the files have path lengths greater than
> 260 characters, and I'm hoping that using this specification will allow 
> access to those files without adding funky 3rd party tools.
>
> So, I've ended up with a set of text files that have many lines that look 
> like this:
>      \\?\i:\somedirectory\otherdirectory\file
>
> What I'm trying to do is illustrated by the following, but I'm getting no 
> output from it - it just returns without any output after a few moments.
>
>      $files = get-content c:\batchfiles\file-i.txt
>      foreach ( $file in $files )
>      {
>         get-childitem $file | select length, fullname
>      }
>
>
> However, if I strip the '\\?\' from each line, it does what I want - but of 
> course the script fails as soon as it encounters a file that has a 
> name/directory specification that exceeds the Win32 API limit.
>
> I've tried surrounding the string with both double and single quotes, and 
> still no joy.
>
> A simpler example tells the tale:
>
> This works, except for long file names:
>      gci i:\somedirectory\otherdirectory\file
>
> These fail silently:
>      gci \\?\i:\somedirectory\otherdirectory\file
>      gci "\\?\i:\somedirectory\otherdirectory\file"
>      gci '\\?\i:\somedirectory\otherdirectory\file'
>
> These fail with an error:
>      gci "\\\\?\\i:\somedirectory\otherdirectory\file"
>      gci '\\\\?\\i:\somedirectory\otherdirectory\file'
>
> The error is:
> Get-ChildItem : Cannot retrieve the dynamic parameters for the cmdlet.
> Cannot process argument because the value of argument "path" is not valid. 
> Change the value of the "path" argument and run the operation again.
> At line:1 char:1
> + gci "\\\\?\\i:\CFRemoteImages\Air Canada Montreal STOC.vhd" | select
> length, ful ...
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : InvalidArgument: (:) [Get-ChildItem],
> ParameterBindingException
>     + FullyQualifiedErrorId :
> GetDynamicParametersException,Microsoft.PowerShell.Commands.GetChildItemCommand
>
>
> ================================================
> Did you know you can also post and find answers on PowerShell in the forums?
> http://www.myitforum.com/forums/default.asp?catApp=1
>
>
> ================================================
> Did you know you can also post and find answers on PowerShell in the forums?
> http://www.myitforum.com/forums/default.asp?catApp=1


================================================
Did you know you can also post and find answers on PowerShell in the forums?
http://www.myitforum.com/forums/default.asp?catApp=1

Reply via email to