breakfruit, прошу прощения, если сформулировал мысль не достаточно четко. Попробую объяснить популярно на пальцах. Допустим есть командлет, которому нужно скормить более одного параметра за раз. Например:
Код:

Invoke-Cmdlet -Param1 one -Param2 two ... -ParamN N
Иными словами, чем больше параметров, тем длиннее спагетти, а следовательно сложнее в отладке код. Чтобы сделать код более удобочитаемым параметры командлету можно передать в виде хэш-литерала, т.е. код выше можно переписать как:
Код:

$par = @{
Param1 = 'one'
Param2 = 'two'
...
ParamN = N
}
Invoke-Cmdlet @par
Если по каким-то причинам какой-то из параметров оказался не нужел, достаточно его либо удалить из хэша, либо закомментировать.