Releases: santisq/PSTree
v2.2.6
v2.2.5
What's Changed
This version modifies the Get-PSTreeRegistry
cmdlet to include registry default values (unnamed values displayed as (Default)
in regedit
), which were previously excluded due to a filter on empty value names.
Impact of the Change
Before: (Default)
values (empty-named registry values) were excluded from the output:
PS ..\PSTree> Get-PSTreeRegistry Registry::HKEY_CLASSES_ROOT\LibreOffice.Pdf\shell\new
Kind Hierarchy
---- ---------
RegistryKey new
RegistryKey └── command
After: (Default)
values are now included:
PS ..\PSTree> Get-PSTreeRegistry Registry::HKEY_CLASSES_ROOT\LibreOffice.Pdf\shell\new
Kind Hierarchy
---- ---------
RegistryKey new
String ├── (Default)
RegistryKey └── command
String └── (Default)
PS ..\PSTree> (Get-PSTreeRegistry Registry::HKEY_CLASSES_ROOT\LibreOffice.Pdf\shell\new)[-1].GetValue()
"C:\Program Files\LibreOffice\program\sdraw.exe" -n "%1"
Full Changelog: v2.2.4...v2.2.5
v2.2.4
What's Changed
- Optimized code to reduce memory allocations, improving performance for large data sets.
- Adds
-Include
and-Exclude
parameters to theGet-PSTreeRegistry
cmdlet by @santisq in PR #46. These work similarly to theirGet-PSTree
counterparts—see the docs for details—but here’s a quick look at what’s now possible:
# Basic tree view
PS ..\PSTree> Get-PSTreeRegistry HKCU:\System -Depth 2
Hive: HKEY_CURRENT_USER\System
Kind Hierarchy
---- ---------
RegistryKey System
RegistryKey ├── GameConfigStore
DWord │ ├── GameDVR_Enabled
DWord │ ├── GameDVR_FSEBehaviorMode
Binary │ ├── Win32_AutoGameModeDefaultProfile
Binary │ ├── Win32_GameModeRelatedProcesses
DWord │ ├── GameDVR_HonorUserFSEBehaviorMode
DWord │ ├── GameDVR_DXGIHonorFSEWindowsCompatible
DWord │ ├── GameDVR_EFSEFeatureFlags
RegistryKey │ ├── Parents
RegistryKey │ └── Children
RegistryKey └── CurrentControlSet
RegistryKey ├── Policies
RegistryKey └── Control
# Filter out specific items
PS ..\PSTree> Get-PSTreeRegistry HKCU:\System -Depth 2 -Exclude CurrentControlSet, GameDV*
Hive: HKEY_CURRENT_USER\System
Kind Hierarchy
---- ---------
RegistryKey System
RegistryKey └── GameConfigStore
Binary ├── Win32_AutoGameModeDefaultProfile
Binary ├── Win32_GameModeRelatedProcesses
RegistryKey ├── Parents
RegistryKey └── Children
# Select GameDVR-related values
PS ..\PSTree> Get-PSTreeRegistry HKCU:\System -Depth 2 -Include GameDVR*
Hive: HKEY_CURRENT_USER\System
Kind Hierarchy
---- ---------
RegistryKey System
RegistryKey └── GameConfigStore
DWord ├── GameDVR_Enabled
DWord ├── GameDVR_FSEBehaviorMode
DWord ├── GameDVR_HonorUserFSEBehaviorMode
DWord ├── GameDVR_DXGIHonorFSEWindowsCompatible
DWord └── GameDVR_EFSEFeatureFlags
Full Changelog: v2.2.3...v2.2.4
v2.2.3
What's Changed
- Introduced the
RegistryStyle
class and added aRegistry
property to theTreeStyle
class. - Moved file system style properties from
TreeStyle
to a newFileSystemStyle
class, with aFileSystem
property added toTreeStyle
. - Added coloring support for
Get-PSTreeRegistry
, allowing customization based on theKind
property ofTreeRegistryBase
instances. See about_TreeStyle for details.
Full Changelog: v2.2.2...v2.2.3
v2.2.2
What's Changed
- Renamed Output Types: Updated type names by removing the
PS
prefix (e.g.,PSTreeFile
→TreeFile
,PSTreeRegistryKey
→TreeRegistryKey
) to improve naming consistency and clarity, making the module’s output objects more intuitive. - New Cmdlet: This version introduces
Get-PSTreeRegistry
, a new Windows-only cmdlet that traverses the Windows Registry in a tree-like format, enabling hierarchical exploration of registry keys and values for system configuration and troubleshooting. Explore its capabilities in the documentation or check out practical examples in the README. Note that this version does not include colorized output, but this feature is planned for future releases. If you have suggestions, spot any bugs, or want to contribute, please submit an issue.
Full Changelog: v2.2.1...v2.2.2
v2.2.1
What's Changed
-
Big code refactoring, this update improves readability and simplicity.
-
Updates to
-Include
and-Exclude
parameters, with this update the patterns are evaluated using the
object's.Name
property instead of.FullName
. -
In addition to the above, this update improves how the cmdlet displays trees when
-Include
is used.
Before, the cmdlet would display sub-trees where no files were matched by the include patterns. Now, only trees having files matched by the patterns are displayed.# PSTree v2.2.0 PS ..\pwsh> Get-PSTree ..\PSTree -Include *.ps1, *.cs -Exclude *tools, *output Source: C:\User\PSTree Mode Length Hierarchy ---- ------ --------- d---- 29.57 KB PSTree -a--- 1.34 KB ├── build.ps1 d---- 0.00 B ├── .github d---- 4.10 KB │ └── workflows d---- 4.11 KB ├── .vscode d---- 229.32 KB ├── assets d---- 0.00 B ├── docs d---- 12.55 KB │ └── en-US d---- 13.63 KB ├── module d---- 0.00 B ├── src d---- 11.50 KB │ └── PSTree -a--- 1.06 KB │ ├── Cache.cs -a--- 2.65 KB │ ├── CommandWithPathBase.cs -a--- 2.98 KB │ ├── PSTreeDirectory.cs -a--- 1.42 KB │ ├── PSTreeFile.cs -a--- 1.69 KB │ ├── PSTreeFileSystemInfo_T.cs -a--- 524.00 B │ ├── PSTreeFileSystemInfo.cs -a--- 404.00 B │ ├── TreeComparer.cs d---- 0.00 B │ ├── bin d---- 6.54 KB │ ├── Commands d---- 3.63 KB │ ├── Extensions d---- 1.14 KB │ ├── Internal d---- 16.83 KB │ ├── obj d---- 9.28 KB │ └── Style d---- 17.87 KB └── tests -a--- 765.00 B ├── FormattingInternals.tests.ps1 -a--- 6.15 KB ├── GetPSTreeCommand.tests.ps1 -a--- 1.77 KB ├── PSTreeDirectory.tests.ps1 -a--- 920.00 B ├── PSTreeFile.tests.ps1 -a--- 2.63 KB ├── PSTreeFileSystemInfo_T.tests.ps1 -a--- 4.90 KB └── TreeStyle.tests.ps1 # PSTree v2.2.1 PS ..\pwsh> Get-PSTree ..\PSTree -Include *.ps1, *.cs -Exclude tools, output Source: C:\User\PSTree Mode Length Hierarchy ---- ------ --------- d---- 1.34 KB PSTree -a--- 1.34 KB ├── build.ps1 d---- 0.00 B ├── src d---- 10.70 KB │ └── PSTree -a--- 1.06 KB │ ├── Cache.cs -a--- 2.65 KB │ ├── CommandWithPathBase.cs -a--- 2.98 KB │ ├── PSTreeDirectory.cs -a--- 1.42 KB │ ├── PSTreeFile.cs -a--- 1.69 KB │ ├── PSTreeFileSystemInfo_T.cs -a--- 524.00 B │ ├── PSTreeFileSystemInfo.cs -a--- 404.00 B │ └── TreeComparer.cs d---- 17.10 KB └── tests -a--- 765.00 B ├── FormattingInternals.tests.ps1 -a--- 6.15 KB ├── GetPSTreeCommand.tests.ps1 -a--- 1.77 KB ├── PSTreeDirectory.tests.ps1 -a--- 920.00 B ├── PSTreeFile.tests.ps1 -a--- 2.63 KB ├── PSTreeFileSystemInfo_T.tests.ps1 -a--- 4.90 KB └── TreeStyle.tests.ps1
Full Changelog: v2.2.0...v2.2.1
v2.2.0
What's Changed
- Adds
TreeStyle
to PSTree by @santisq in #37. For details on how to customize your output see about_TreeStyle.
Full Changelog: v2.1.18...v2.2.0
v2.1.18
What's Changed
- Makes
Depth
property public forPSTreeFileSystemInfo
instances. - Makes
GetParents()
method private, absolutely no reason to have it public. - Added properties
ItemCount
andTotalItemCount
toPSTreeDirectory
instances, requested in #34.
PS ..\PSTree> pstree -Recurse -Force -Directory | Select-Object Hierarchy, Depth, ItemCount, TotalItemCount -First 15
Hierarchy Depth ItemCount TotalItemCount
--------- ----- --------- --------------
PSTree 0 15 1476
├── .git 1 13 1078
│ ├── hooks 2 13 13
│ ├── info 2 1 1
│ ├── logs 2 2 24
│ │ └── refs 3 2 22
│ │ ├── heads 4 9 9
│ │ └── remotes 4 1 11
│ │ └── origin 5 10 10
│ ├── objects 2 244 995
│ │ ├── 00 3 3 3
│ │ ├── 01 3 2 2
│ │ ├── 02 3 3 3
│ │ ├── 03 3 4 4
│ │ ├── 04 3 2 2
PS ..\PSTree> (Get-ChildItem -Force).Count
15
PS ..\PSTree> (Get-ChildItem -Force -Recurse).Count
1476
PS ..\PSTree> (Get-ChildItem .git -Force).Count
13
PS ..\PSTree> (Get-ChildItem .git -Force -Recurse).Count
1078
PS ..\PSTree>
Full Changelog: v2.1.17...v2.1.18
v2.1.17
What's Changed
- Updates build process by @santisq in #31
- Updates CI pipeline by @santisq in #32
- Fixes #9 by @santisq in #33. Output is now sorted by ascending values:
-
PSTree v2.1.16
PS ..\PSTree> pstree -Directory -Depth 2 Source: D:\...\PSTree Mode Length Hierarchy ---- ------ --------- d---- 25.27 KB PSTree d---- 3.72 KB ├── tools d---- 16.96 KB │ ├── ProjectBuilder d---- 0.00 B │ └── Modules d---- 13.66 KB ├── tests d---- 0.00 B ├── src d---- 13.26 KB │ └── PSTree d---- 168.69 KB ├── output d---- 92.50 KB │ ├── TestResults d---- 0.00 B │ └── PSTree d---- 6.26 KB ├── module d---- 0.00 B ├── docs d---- 7.37 KB │ └── en-US d---- 4.11 KB ├── .vscode d---- 0.00 B └── .github d---- 4.10 KB └── workflows
-
PSTree v2.1.17
PS ..\PSTree> pstree -Directory -Depth 2 Source: D:\Zen\Documents\Scripts\PSTree Mode Length Hierarchy ---- ------ --------- d---- 25.27 KB PSTree d---- 0.00 B ├── .github d---- 4.10 KB │ └── workflows d---- 4.11 KB ├── .vscode d---- 0.00 B ├── docs d---- 7.37 KB │ └── en-US d---- 6.26 KB ├── module d---- 168.69 KB ├── output d---- 0.00 B │ ├── PSTree d---- 92.50 KB │ └── TestResults d---- 0.00 B ├── src d---- 13.26 KB │ └── PSTree d---- 13.66 KB ├── tests d---- 3.72 KB └── tools d---- 0.00 B ├── Modules d---- 16.96 KB └── ProjectBuilder
-
Full Changelog: v2.1.16...v2.1.17
v2.1.16
What's Changed
-
Added method
.GetFormattedLength()
. Outputs the friendly.Length
representation ofPSTreeFile
andPSTreeDirectory
instances.PS ..\PSTree> (Get-PSTree D:\ -RecursiveSize -Depth 0).GetFormattedLength() 629.59 GB
Full Changelog: v2.1.15...v2.1.16