[Bug]: get-foldersize and user profile files
jszabo98 opened this issue · comments
Describe the problem
get-foldersize doesn't seem to return the correct size for user profiles, maybe because of things like symlinks? It is fast though.
Expectation
No response
Additional Information
No response
PowerShell version
4.0
Platform
None
Additional Checks
- You are using the latest version of this module.
- You have read this repository's README file.
- You have read full help and examples for the command you are having problems with.
- You are running PowerShell in an elevated session.
- You are running in a traditional PowerShell console or Windows Terminal
What version of PowerShell are you using? What path are you querying? Are you including hidden files?
Powershell 5.1. c:\users. Including hidden files.
You'll probably get access-denied messages for parts of that path, even if running as Admin. I did a test on my profile in Windows PowerShell.
Get-FolderSizeInfo $home -hidden
My total size is actually about 3GB more than what I get when I use Windows Explorer and look at properties. The same test in PowerShell 7 is closer to the results I see in Windows Explorer. This is on a Windows 11 system. Profile folders are tricky due to hidden files and special access permissions.
Although, there might be an issue with symlinks. In Windows PowerShell, the function follows the link and includes the size information, but not in PowerShell 7, which uses a different .NET method.
This suits me, to skip the reparsepoints like the mounted Onedrive ...
$top = ($di.GetDirectories()).Where( { $_.attributes -notmatch 'reparsepoint' })
Let me see what I can come up with.
I have a new version for the next release. I am now skipping all reparse points and junctions.
v2.49.0 has been published to the PowerShell Gallery if you want to update and test.