Question [Tutoriel] Usage de PSScriptAnalyzer

Plus d'informations
il y a 3 ans 7 mois #22547 par Laurent Dardenne
Un tutoriel sur l'usage de PSScripAnalzer et la création de règle en Powershell.

Règles:
github.com/ChrisLGardner/ScriptAnalyzerRules <br><br>Message édité par: Laurent Dardenne, à: 20/07/19 11:12

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 2 ans 2 mois #25099 par Laurent Dardenne
Un fichier ps1xml, déclarant les méthodes d'extension présentes dans la dll Microsoft.Windows.PowerShell.ScriptAnalyzer.dll :
[code:1]
&lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;utf-8\&quot;?&gt;
&lt;Types&gt;
&lt;Type&gt;
&lt;Name&gt;System.Management.Automation.Language.ParamBlockAst&lt;/Name&gt;
&lt;Members&gt;
&lt;ScriptMethod&gt;
&lt;Name&gt;GetCmdletBindingAttributeAst&lt;/Name&gt;
&lt;Script&gt; switch ($args.Count) {
# GetCmdletBindingAttributeAst([System.Management.Automation.Language.ParamBlockAst] $paramBlockAst)
0 { [Microsoft.Windows.PowerShell.ScriptAnalyzer.Extensions.Extensions]::GetCmdletBindingAttributeAst($this) }

default { throw \&quot;No overload for 'GetCmdletBindingAttributeAst' takes the specified number of parameters.\&quot; }
}
&lt;/Script&gt;
&lt;/ScriptMethod&gt;
&lt;/Members&gt;
&lt;/Type&gt;
&lt;Type&gt;
&lt;Name&gt;System.Management.Automation.Language.AttributeAst&lt;/Name&gt;
&lt;Members&gt;
&lt;ScriptMethod&gt;
&lt;Name&gt;IsCmdletBindingAttributeAst&lt;/Name&gt;
&lt;Script&gt; switch ($args.Count) {
# IsCmdletBindingAttributeAst([System.Management.Automation.Language.AttributeAst] $attributeAst)
0 { [Microsoft.Windows.PowerShell.ScriptAnalyzer.Extensions.Extensions]::IsCmdletBindingAttributeAst($this) }

default { throw \&quot;No overload for 'IsCmdletBindingAttributeAst' takes the specified number of parameters.\&quot; }
}
&lt;/Script&gt;
&lt;/ScriptMethod&gt;
&lt;ScriptMethod&gt;
&lt;Name&gt;GetSupportsShouldProcessAst&lt;/Name&gt;
&lt;Script&gt; switch ($args.Count) {
# GetSupportsShouldProcessAst([System.Management.Automation.Language.AttributeAst] $attributeAst)
0 { [Microsoft.Windows.PowerShell.ScriptAnalyzer.Extensions.Extensions]::GetSupportsShouldProcessAst($this) }

default { throw \&quot;No overload for 'GetSupportsShouldProcessAst' takes the specified number of parameters.\&quot; }
}
&lt;/Script&gt;
&lt;/ScriptMethod&gt;
&lt;/Members&gt;
&lt;/Type&gt;
&lt;Type&gt;
&lt;Name&gt;System.Management.Automation.Language.NamedAttributeArgumentAst&lt;/Name&gt;
&lt;Members&gt;
&lt;ScriptMethod&gt;
&lt;Name&gt;GetValue&lt;/Name&gt;
&lt;Script&gt; switch ($args.Count) {
# GetValue([System.Management.Automation.Language.NamedAttributeArgumentAst] $attrAst)
0 { [Microsoft.Windows.PowerShell.ScriptAnalyzer.Extensions.Extensions]::GetValue($this) }

# GetValue([System.Management.Automation.Language.NamedAttributeArgumentAst] $attrAst, [ref] [System.Management.Automation.Language.ExpressionAst] $argumentAst)
1 { [Microsoft.Windows.PowerShell.ScriptAnalyzer.Extensions.Extensions]::GetValue($this,$args[0]) }

default { throw \&quot;No overload for 'GetValue' takes the specified number of parameters.\&quot; }
}
&lt;/Script&gt;
&lt;/ScriptMethod&gt;
&lt;/Members&gt;
&lt;/Type&gt;
&lt;Type&gt;
&lt;Name&gt;System.Management.Automation.Language.FunctionDefinitionAst&lt;/Name&gt;
&lt;Members&gt;
&lt;ScriptMethod&gt;
&lt;Name&gt;GetParameterAsts&lt;/Name&gt;
&lt;Script&gt; switch ($args.Count) {
# GetParameterAsts([System.Management.Automation.Language.FunctionDefinitionAst] $functionDefinitionAst)
0 { [Microsoft.Windows.PowerShell.ScriptAnalyzer.Extensions.Extensions]::GetParameterAsts($this) }

# GetParameterAsts([System.Management.Automation.Language.FunctionDefinitionAst] $functionDefinitionAst, [ref] [System.Management.Automation.Language.ParamBlockAst] $paramBlockAst)
1 { [Microsoft.Windows.PowerShell.ScriptAnalyzer.Extensions.Extensions]::GetParameterAsts($this,$args[0]) }

default { throw \&quot;No overload for 'GetParameterAsts' takes the specified number of parameters.\&quot; }
}
&lt;/Script&gt;
&lt;/ScriptMethod&gt;
&lt;/Members&gt;
&lt;/Type&gt;
&lt;Type&gt;
&lt;Name&gt;System.String&lt;/Name&gt;
&lt;Members&gt;
&lt;ScriptMethod&gt;
&lt;Name&gt;GetLines&lt;/Name&gt;
&lt;Script&gt; switch ($args.Count) {
# GetLines([string] $text)
0 { [Microsoft.Windows.PowerShell.ScriptAnalyzer.Extensions.Extensions]::GetLines($this) }

default { throw \&quot;No overload for 'GetLines' takes the specified number of parameters.\&quot; }
}
&lt;/Script&gt;
&lt;/ScriptMethod&gt;
&lt;/Members&gt;
&lt;/Type&gt;
&lt;/Types&gt;

[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 7/03/18 18:35

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 2 ans 2 mois #25241 par Laurent Dardenne
On peut désormais utiliser un fichier de configuration pour les règles externe (script module).

Cela fonctionne également avec VSCode .

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.200 secondes
Propulsé par Kunena