Deaktivieren der PSAvoidUsingCmdletAliases von PSScriptAnalyzer in der PowerShell-Erweiterung in Visual Studio-Code

2

Ich benutze Visual Studio-Code meine PowerShell-Skripte schreiben.

Ich habe das installiert ms-vscode.powershell PowerShell-Erweiterung für Visual Studio-Code.

Immer wenn ich einen Alias ​​in meinem Skript verwende, wird der PSScriptAnalyzer fordert mich auf, den vollständigen CmdLet-Namen zu verwenden. Das ist etwas ärgerlich, weil es auch alle Aliase mit einer grünen kurvigen Linie markiert.

Wie kann ich das deaktivieren?

see_screenshot_of_the_problem

SimonS
quelle
Dies geschieht, weil die beste Vorgehensweise darin besteht, in Produktskripten keine Aliase zu verwenden. powertheshell.com/bp_script_alias Es macht sie schwer zu lesen, schwer zu warten und fehleranfällig. Aliases ist wirklich auf interaktive Befehlszeilenprogramme ausgerichtet. Natürlich können Sie Aliase in VSCode während der Entwicklung verwenden. Sie sollten sie jedoch unbedingt ersetzen, bevor Sie mit der Produktion beginnen. Verwenden Sie den Befehl expand alias - blogs.technet.microsoft.com/heyscriptingguy/2017/01/12/…
postanote
@postanote Ich weiß, warum dies getan wird, aber ich werde niemals z Foreach-Object oder Select-Object oder Get-ChildItem in meinen Skripten, egal was die Best Practices sind.
SimonS

Antworten:

3

Dafür gibt es drei Möglichkeiten.

Option 1 - Verwenden Sie die Suchfunktion

  1. Drücken Sie F1 in Visual Studio Code, um die Suchleiste anzuzeigen
  2. Schreiben >PowerShell: Select PS dann wähle PowerShell: Select PSScriptAnalyzer Rules
  3. entfernen Sie das Häkchen an PSAvoidUsingCmdletAliases
  4. Klicke auf Confirm

Bild:

enter image description here

Option 2 - ScriptAnalysis vollständig deaktivieren

  1. Klicken Sie in Visual Studio Code auf das Zahnradsymbol in der linken unteren Ecke
  2. Klicken Sie auf Einstellungen
  3. Drücke den {} Symbol in der rechten oberen Ecke
  4. Hinzufügen "powershell.scriptAnalysis.enable": false zu Ihren Benutzereinstellungen auf der rechten Seite (siehe Abbildung unten).
  5. Speichern Sie Ihre Benutzereinstellungen, indem Sie auf klicken CTRL + S

Bildschirmfoto:

enter image description here

Ihr Script Analyzer ist jetzt deaktiviert und beschwert sich nicht mehr über Aliase.

Option 3 - Erstellen Sie eine Einstellungsdatei und deaktivieren Sie nur die Alias-Informationen

  1. Erstellen Sie eine .psd1-Datei in Ihrem Dateisystem. Kopieren Sie die Vorlage von unten in diese Datei und speichern Sie sie.
  2. Wechseln Sie zu Ihren Benutzereinstellungen in VSCode, wie in Option 2, Punkt 1 bis 3 beschrieben.
  3. Hinzufügen "powershell.scriptAnalysis.settingsPath": "C:\\foo\\bar\\FileName.psd1" und speichern Sie es

Hier ist ein Bild davon:

enter image description here

Vorlage (entnommen aus https://github.com/PowerShell/vscode-powershell/blob/develop/examples/PSScriptAnalyzerSettings.psd1 ):

@{
    # Only diagnostic records of the specified severity will be generated.
    # Uncomment the following line if you only want Errors and Warnings but
    # not Information diagnostic records.
    # Severity = @('Error','Warning')

    # Analyze **only** the following rules. Use IncludeRules when you want
    # to invoke only a small subset of the defualt rules.
    IncludeRules = @('PSAvoidDefaultValueSwitchParameter',
                     'PSMisleadingBacktick',
                     'PSMissingModuleManifestField',
                     'PSReservedCmdletChar',
                     'PSReservedParams',
                     'PSShouldProcess',
                     'PSUseApprovedVerbs',
                     'PSUseDeclaredVarsMoreThanAssigments')

    # Do not analyze the following rules. Use ExcludeRules when you have
    # commented out the IncludeRules settings above and want to include all
    # the default rules except for those you exclude below.
    # Note: if a rule is in both IncludeRules and ExcludeRules, the rule
    # will be excluded.
    ExcludeRules = @('PSAvoidUsingAliases','PSAvoidUsingWriteHost')
}
SimonS
quelle
1
Vielen Dank für das Teilen, Simon.
root
1
@wurzel du bist willkommen. Ich freue mich sehr über Visual Studio Code! Dies ist eine großartige Alternative zu PowerShell ISE.
SimonS
1
Hier gilt das gleiche. Ich habe einige Bedenken gegenüber VSC, obwohl ich denke, dass sie auf mein mangelndes Verständnis des umfangreichen Funktionsumfangs und der Konfigurierbarkeit zurückzuführen sind.
root