Всем привет еще раз. С вами - заметки начинающего PoSH'ера.
Как вы помните, проблема была в том, что бы убрать вот такие спагетти
Код:

foreach ($hGroup in $InputData)
{
Add-IPRule -VMId $dGroup_ID -Name $hGroup.name -Action $hGroup.action -Description $hGroup.description -Protocol $hGroup.protocolNum -Type $hGroup.Direction -LocalPorts $hGroup.LocalPortsString -RemotePorts $hGroup.RemotePortsString
}
По совету бывалых, попытался убрать через хэш-таблицу. Получилось следующее. Немного изменив переменные
Код:

$ruleset= @{
"VMId" = "$dGroup_ID";
"Name" = "$Group.name";
"Action" = "$Group.action";
"Describtion" = "$Group.description";
"Protocol" = "$Group.protocolNum";
"Type" = "$Group.Direction";
"LocalPorts" = "$Group.LocalPortsString";
"RemotePorts" = "$Group.RemotePortsString";
}
foreach ($Group in $InputData)
{
Add-IPRule @ruleset
}
В итоге - получаю ошибку, гласящуую, что
Код:

Add-IPRule : Cannot bind parameter 'Action'. Cannot convert value "Allow KERBEROS.action" to type "(убрал, дабы не было рекламы.VirtualFirewall.CommonDataTypes.RuleAction". Error: "Unable to match the
identifier name Allow KERBEROS.action to a valid enumerator name. Specify one of the following enumerator names and try again: AllowNoSPI, Block, Allow"
Я понимаю, что проблема в том, что почему-то в параметр Action валится значения параметра Name, но я хоть убей понять не могу - почему?
После выполнения кода, даже с ошибками, картина переменных следующая
PS> $group.name
Allow KERBEROS
PS> $group.action
Value
-----
Allow