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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Переменные из данных в txt файле

Ответить
Настройки темы
PowerShell - [решено] Переменные из данных в txt файле

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


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


Конфигурация

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


Изменения
Автор: breakfruit
Дата: 02-06-2015
Всем доброго времени суток. Для меня, по-прежнему, PoSH - дремучий лес. И вновь появилась (поставили ) интересную задачу.

Есть txt файл с некими параметрами
Код: Выделить весь код
Id                : 39d525ee-de75-446c-84bd-0d0ff08d3b8d
TypeOfRule        : IP
VMId              : e0f63469-1c5e-4c8e-a0ae-5b92e7cfe1da
Name              : ICMP Allow in
Description       : 
Direction         : Inbound
Action            : Allow
LocalPorts        : {0-65535}
RemotePorts       : {0-65535}
RemoteVMs         : {}
TargetAddressType : Any
VlanId            : 4095
Protocol          : ICMP
ProtocolNum       : 1
ProtocolString    : ICMP
RemotePortsString : 0-65535
LocalPortsString  : 0-65535
RemoteIPs         : Any
RemoteMACString   : Any
Нужно задать переменные, используя почти все указанные значения полей в файле. Т.е. то, что после ":" идет. Я так понимаю, тут потребуется уже что-то более серьезное, чем foreach, который я уже худо бедно освоил. Но вот что именно, загуглился уже весь.

Заранее признателен за любую помощь. А если еще и наводка будет на то, что почитать. Конкретно по данной тематике - с меня напитки и плюшки по почте России :D

Отправлено: 16:43, 01-06-2015

 

Ветеран


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

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


breakfruit, Должен любой, в том числе скрипты, если в них правильно оформлены параметры -- param ()
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:22, 04-06-2015 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


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


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

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


*ушел гуглить правильность оформления параметров*

Всем еще раз огромное спасибо.

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


Отправлено: 10:27, 04-06-2015 | #22


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


Сообщения: 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


Ветеран


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

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


Не туда вынесли и не надо двойных кавычек:
Код: Выделить весь код
foreach ($Group in $InputData)
{
$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;
}
Add-IPRule @ruleset
}
Это сообщение посчитали полезным следующие участники:

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


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


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

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


Т.е. хэш-таблица должна быть прописана внутри функции, всегда? Нельзя ее определить изначально?

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


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


Ветеран


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

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


breakfruit, Имхо не обязательно:
Код: Выделить весь код
$par = @{ Path = 'D:'; Force = $true }

function test {

    gci @par

}

test

Отправлено: 17:10, 05-06-2015 | #26



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Переменные из данных в txt файле

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Выбор данных из txt файла leks71 Скриптовые языки администрирования Windows 2 13-04-2015 20:00
Любой язык - Выборка данных из txt KarpovStas Скриптовые языки администрирования Windows 22 27-11-2013 17:16
CMD/BAT - выполнение команд из списка в txt файле systemroot Скриптовые языки администрирования Windows 2 12-02-2011 17:49
CMD/BAT - [решено] Ввод данных в переменную из txt-файла river123 Скриптовые языки администрирования Windows 1 10-01-2011 18:43
CMD/BAT - [решено] Выбор данных из txt по маске hxygen Скриптовые языки администрирования Windows 4 24-10-2010 15:52




 
Переход