Skip to content

Releases: santisq/PSTree

v2.2.6

19 Apr 19:40
27cbb98
Compare
Choose a tag to compare

What's Changed

  • Adds parameter aliases for Get-PSTree and Get-PSTreeRegistry requested on issue #49. Check the docs for more information.

Full Changelog: v2.2.5...v2.2.6

v2.2.5

07 Apr 19:49
Compare
Choose a tag to compare

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

15 Mar 20:22
Compare
Choose a tag to compare

What's Changed

  • Optimized code to reduce memory allocations, improving performance for large data sets.
  • Adds -Include and -Exclude parameters to the Get-PSTreeRegistry cmdlet by @santisq in PR #46. These work similarly to their Get-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

26 Feb 22:45
0d7cba9
Compare
Choose a tag to compare

What's Changed

  • Introduced the RegistryStyle class and added a Registry property to the TreeStyle class.
  • Moved file system style properties from TreeStyle to a new FileSystemStyle class, with a FileSystem property added to TreeStyle.
  • Added coloring support for Get-PSTreeRegistry, allowing customization based on the Kind property of TreeRegistryBase instances. See about_TreeStyle for details.

Full Changelog: v2.2.2...v2.2.3

v2.2.2

22 Feb 18:38
Compare
Choose a tag to compare

What's Changed

  • Renamed Output Types: Updated type names by removing the PS prefix (e.g., PSTreeFileTreeFile, PSTreeRegistryKeyTreeRegistryKey) 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

19 Jan 23:05
21dcdef
Compare
Choose a tag to compare

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

12 Sep 18:59
Compare
Choose a tag to compare

What's Changed

        GetPSTree     TreeStyle

Full Changelog: v2.1.18...v2.2.0

v2.1.18

03 Sep 20:48
8d4e534
Compare
Choose a tag to compare

What's Changed

  • Makes Depth property public for PSTreeFileSystemInfo instances.
  • Makes GetParents() method private, absolutely no reason to have it public.
  • Added properties ItemCount and TotalItemCount to PSTreeDirectory 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

30 Aug 00:35
b11df98
Compare
Choose a tag to compare

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

26 Feb 17:59
Compare
Choose a tag to compare

What's Changed

  • Added method .GetFormattedLength(). Outputs the friendly .Length representation of PSTreeFile and PSTreeDirectory instances.

    PS ..\PSTree> (Get-PSTree D:\ -RecursiveSize -Depth 0).GetFormattedLength()
    629.59 GB

Full Changelog: v2.1.15...v2.1.16