AvoidUsingComputerNameHardcoded

严重程度等级:错误

默认状态:始终启用

Description

该规则检测cmdlet参数中的 ComputerName 硬编码计算机名称。 硬编码的计算机名称可能会暴露敏感信息,降低脚本的可移植性。 ComputerName参数应始终参数化或动态分配,以确保脚本的灵活性和安全性。

使用参数、环境变量或动态值代替硬编码的计算机名称。

Example

非符合性

Function Invoke-MyRemoteCommand ()
{
    Invoke-Command -Port 343 -ComputerName HardcodedRemoteHostname
}

合规的

Function Invoke-MyCommand ($ComputerName)
{
    Invoke-Command -Port 343 -ComputerName $ComputerName
}

配置规则

这个规则始终是启用的,不能配置。 请采用以下方法之一以避免使用此规则:

  • 创建一个自定义规则配置文件,只包含你想要的规则,或者排除你不想要的规则。
  • 在代码中添加相应的规则抑制属性,以抑制特定代码块的规则。 更多信息请参见使用 PSScriptAnalyzer 中的“抑制规则”部分。