PSScriptAnalyzer icon indicating copy to clipboard operation
PSScriptAnalyzer copied to clipboard

Get-ScriptAnalyzerRule throws "Exception of type 'System.Exception' was thrown." when path does not contain rules

Open Marc013 opened this issue 3 years ago • 0 comments

When running command provided in the reproduce section exception Exception of type 'System.Exception' was thrown. is thrown. This message does not inform what is wrong and causes unexpected and very unclear behavior when using in automation.

It would be absolutely great when a more meaningful exception message could be thrown.

Steps to reproduce

Get-ScriptAnalyzerRule -CustomRulePath C:\someExistingPathWithoutPSSARules\ -RecurseCustomRulePath

Expected behavior

$null

or

No script analyzer rules found

Actual behavior

Get-ScriptAnalyzerRule: Exception of type 'System.Exception' was thrown.

If an unexpected error was thrown then please report the full error details using e.g. $error[0] | Select-Object *

PSMessageDetails      :
Exception             : System.Exception: Exception of type 'System.Exception' was thrown.
                           at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
TargetObject          : Microsoft.Windows.PowerShell.ScriptAnalyzer.ScriptAnalyzer
CategoryInfo          : ResourceExists: (Microsoft.Windows.P…yzer.ScriptAnalyzer:ScriptAnalyzer) [Get-ScriptAnalyzerRule], Exception
FullyQualifiedErrorId : Cannot find ScriptAnalyzer rules in the specified path,Microsoft.Windows.PowerShell.ScriptAnalyzer.Commands.GetScriptAnalyzerRuleCommand
ErrorDetails          :
InvocationInfo        : System.Management.Automation.InvocationInfo
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {}

Environment data

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      7.3.1
PSEdition                      Core
GitCommitId                    7.3.1
OS                             Microsoft Windows 10.0.19042
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

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

Marc013 avatar Dec 16 '22 16:12 Marc013