Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 35
Благодарности: 4

Профиль | Отправить PM | Цитировать


Всем привет еще раз. С вами - заметки начинающего 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

-------
И на груди его могучей три волосины сбились в кучу.


Отправлено: 11:31, 05-06-2015 | #23