We help IT Professionals succeed at work.

Powershell List all file with Archive and Offline attributes set

117 Views
Last Modified: 2018-09-30
I am trying to run a powershell script to list the name and path of all files with the archive and offline attributes set. The problem is a number of our directory paths are very long and causing the script to skip those directories. Any suggestions on the best way to address this?
Comment
Watch Question

Michael B. SmithManaging Consultant
CERTIFIED EXPERT

Commented:
You can create a share (or subst) in lower levels of the directory tree which can then be processed.

Author

Commented:
I have to search a very drive that has thousand of sub folders so this would turn into a very manual process. Any other idea even outside of Powershell
Michael B. SmithManaging Consultant
CERTIFIED EXPERT

Commented:
Yes, you can do it with robocopy. Robocopy allows you to search for files based on specific attributes and has a mode where it just outputs the file names instead of copying files. It also has no filename limitations.

Take a look at https://learn-powershell.net/2013/04/01/list-all-files-regardless-of-260-character-path-restriction-using-powershell-and-robocopy/ and use the /IA argument for specifying the "Include Attribute" to search for. "robocopy /?" for help.

Author

Commented:
I have not tried to us Robocopy to list / report on files only with a specific attribute and do not want to mess this up and delete files. What syntax would you suggest.
Michael B. SmithManaging Consultant
CERTIFIED EXPERT

Commented:
I ran the command below and it did what I expected. If it's not exactly what you want, it's pretty darn close.

That is:
  • it started at C: root
  • it didn't copy anything
  • it included files with only A and O set
  • it listed the files
  • it didn't search empty subdirectories
  • it didn't give me a report I didn't want
  • it listed file sizes in bytes
  • etc.etc.

I ran this in PowerShell, and it must be an elevated PowerShell to recurse EVERYWHERE, but the results (list of files) are stored in $allfiles.

$allFiles = robocopy c:\ NULL /IA:AO /L /S /NJH /BYTES /FP /NC /NDL /TS /XJ /R:0 /W:0

Open in new window

Author

Commented:
Just to confirm.. the follow switch logs all files only that have the attribute archive & offline set correct..... /IA:AO

Also when I run the script you post it seem to list all files and not just the offline archive ones
Managing Consultant
CERTIFIED EXPERT
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION

Author

Commented:
This is great and we are really close. The exact attributes listed for the files I am looking for is APLO yet when I type this in for the attributes, it does not like it. When I search for AO only, it list some files but not all of them and includes some files that should not be listed.
Michael B. SmithManaging Consultant
CERTIFIED EXPERT

Commented:
I'm sorry, I'm out of ideas. :(

Author

Commented:
You have been a huge help!!!

Author

Commented:
I found that Junction64.exe is able to list junction / reparse files which seems to list all of file with the re-parse attribute set.

Thanks Again...