严重程度等级:错误
默认状态:始终启用
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 中的“抑制规则”部分。