Get-ScriptAnalyzerRule

获取本地计算机上的脚本分析器规则。

语法

Get-ScriptAnalyzerRule
   [[-Name] <string[]>]
   [-CustomRulePath <string[]>]
   [-RecurseCustomRulePath]
   [-Severity <string[]>]
   [<CommonParameters>]

说明

获取本地计算机上的脚本分析器规则。 可以按名称、严重性、源或 SourceType 选择规则,甚至可以按规则说明中的特定字词来选择规则。

使用此 cmdlet 创建运行 Invoke-ScriptAnalyzer cmdlet 时要包括和排除的规则集合。

若要获取有关规则的信息,请参阅每个规则的 Description 属性的值。

PSScriptAnalyzer 模块测试脚本、模块或 DSC 资源中的 PowerShell 代码,以确定它是否满足最佳做法标准。

示例

示例 1 - 获取本地计算机上的所有脚本分析器规则

Get-ScriptAnalyzerRule

示例 2 - 仅获取错误严重性的规则

Get-ScriptAnalyzerRule -Severity Error

示例 3 - 仅运行错误严重性的 DSC 规则

此示例仅对 MyDSCModule 模块中的文件运行错误严重性的 DSC 规则。

$DSCError = Get-ScriptAnalyzerRule -Severity Error | Where-Object SourceName -eq PSDSC
$Path = "$home\Documents\WindowsPowerShell\Modules\MyDSCModule\*"
Invoke-ScriptAnalyzerRule -Path $Path -IncludeRule $DSCError -Recurse

使用 的 Invoke-ScriptAnalyzerRuleIncludeRule 参数比使用其 Severity 参数更高效,该参数仅在使用所有规则分析所有模块文件后应用。

示例 4 - 按名称和严重性获取规则

此示例获取名称中具有“Parameter”或“Alias”的规则,这些规则生成错误或警告。 可以使用这组规则来测试脚本或模块的参数。

$TestParameters = Get-ScriptAnalyzerRule -Severity Error, Warning -Name *Parameter*, *Alias*

示例 5 - 获取自定义规则

此示例获取 VeryStrictRules 和 ExtremelyStrictRules 模块中的标准规则和规则。 该命令使用 RecurseCustomRulePath 参数获取在匹配路径的子目录中定义的规则。

Get-ScriptAnalyzerRule -CustomRulePath $home\Documents\WindowsPowerShell\Modules\*StrictRules -RecurseCustomRulePath

参数

-CustomRulePath

默认情况下,PSScriptAnalyzer 仅获取模块中的 Microsoft.Windows.PowerShell.ScriptAnalyzer.BuiltinRules.dll 文件中指定的标准规则。 使用此参数可获取指定路径中的自定义脚本分析器规则和标准脚本分析器规则。

输入包含脚本分析器规则的 .NET 程序集或模块的路径。 只能输入一个值,但支持通配符。 若要获取路径子目录中的规则,请使用 RecurseCustomRulePath 参数。

可以使用 .NET 程序集或 PowerShell 模块创建自定义规则,例如 GitHub 存储库中的 社区分析器规则

Type:String[]
Aliases:CustomizedRulePath
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Name

仅获取具有指定名称或名称模式的规则。 支持通配符。 如果列出多个名称或模式,它将获取与任何名称模式匹配的所有规则。

Type:String[]
Position:Named
Default value:All rules
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-RecurseCustomRulePath

以递归方式搜索 CustomRulePath 位置,以在路径的子目录中的文件中添加定义的规则。 默认情况下, Get-ScriptAnalyzerRule 仅添加指定路径中的自定义规则。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Severity

仅获取具有指定严重性值的规则。 有效值为:

  • 信息
  • 警告
  • 错误
Type:String[]
Position:Named
Default value:All rules
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

None

无法通过管道将输入传递给此 cmdlet。

输出

Microsoft.Windows.PowerShell.ScriptAnalyzer.Generic.RuleInfo

RuleInfo 对象是专门为脚本分析器创建的自定义对象。