PowerShell / PowerShell/PSScriptAnalyzer

PSUseCmdletCorrectly breaks on Write-Verbose -Verbose

Ouverte
#1,624 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Area - Rules Issue - Bug
Langage dominant
C#
Étoiles
2.2k
Forks
414
Merge moyen
13 h 1 min
PR mergées (30 j)
2

Description

I'm getting a rule violation when we force Write-Verbose to have output like this:

Write-Verbose -Verbose "My Message"

Steps to reproduce

Invoke-ScriptAnalyzer -ScriptDefinition '
Write-Verbose -Verbose "Getting file list from $pwd"
Write-Warning -Verbose "Getting file list from $pwd"
Write-Error -Verbose "Getting file list from $pwd"
Write-Error -ErrorAction SilentlyContinue "Getting file list from $pwd"
' -IncludeRule PSUseCmdletCorrectly

Expected behavior

There are no violations.

Actual behavior

RuleName                            Severity     ScriptName Line  Message
--------                            --------     ---------- ----  -------
PSUseCmdletCorrectly                Warning                 2     Cmdlet 'Write-Verbose' may be used incorrectly. Please
                                                                  check that all mandatory parameters are supplied.
PSUseCmdletCorrectly                Warning                 3     Cmdlet 'Write-Warning' may be used incorrectly. Please
                                                                  check that all mandatory parameters are supplied.

I think it's significant that it has no problem with either of the Write-Error lines, but I have not looked at the code to understand what is happening ...

Environment data

> $PSVersionTable

Name                           Value                                                                                   
----                           -----                                                                                   
PSVersion                      5.1.18362.1171                                                                          
PSEdition                      Desktop                                                                                 
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                 
BuildVersion                   10.0.18362.1171                                                                         
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.19.1
1.19.1

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par reproduire le problème avec Invoke-ScriptAnalyzer et la règle PSUseCmdletCorrectly à l’aide de l’extrait PowerShell du rapport. Suivez la manière dont Write-Verbose et Write-Warning sont vérifiés, puis assurez-vous que la reproduction ne produit aucune violation, tandis que les cas Write-Error existants restent couverts.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp, powershell
Domaine
tooling
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.