PowerShell / PowerShell/PSScriptAnalyzer

Invoke-ScriptAnalyzer -Recurse taking forever (60+ seconds) to finish

Open
#1,189 16 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area - Engine Area - Performance
Dominant language
C#
Stars
2.2k
Forks
414
Avg merge
13h 1m
Merged PRs (30d)
2

Description

To be honest, this is my first time ever I tried to use Invoke-ScriptAnalyzer. So please be patient with me and if I am doing things wrong please let me know. Most of the time I use defaults on VSCode but I wanted to play with it today a bit. I have very simple project with just few files. When I used -Recurse it's stuck. I am not sure if this is just my setup or I need to wait much much longer but it would seem weird for it to be waiting like that on 100 lines.

Keep in mind that my C:\Support\Github is actually hardlinked.

image

Now I am wondering if that is not being a problem overall for all my reports about broken stuff in VSCode where I get lots and lots of perf issues,, broken links. Notice how C: is actually missing from fsutil.exe output. I am not sure if that's supposed to be like that thou and how it would affect your tool.

I did move the project to Desktop or tried using OneDrive folder directly but it didn't change the output so maybe it's not related.

I did try this outside of VSCode with same results.

Steps to reproduce

Invoke-ScriptAnalyzer -Path C:\Support\GitHub\Dashimo -Recurse -Verbose

Expected behavior

Finishing up.

Actual behavior

PSScriptAnalyzer

Environment data

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.17763.316
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.316
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }

1.18.0
1.17.1
1.17.1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing Invoke-ScriptAnalyzer -Path C:\Support\GitHub\Dashimo -Recurse -Verbose on Windows PowerShell 5.1 with PSScriptAnalyzer 1.18.0, comparing recursive and non-recursive runs. Investigate the recursive path handling using the reported project and hardlinked location; done means the command completes normally and the regression is covered by an appropriate test.

Written by the indexing model from the issue text.

Assessment

Tech stack
powershell
Domain
performance, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.