Похоже, что в этом сообщении об ошибке говорится, что командлет Grant-EC2SecurityGroupIngress
ожидал объект типа Amazon.EC2.Model.IpPermission
и не может создать его из переданных вами аргументов.
В вашем коде есть подозрение, чтоможет объяснить ошибку:
$ipCidr = Add-Content -Path "currentip" -Value "/32"
Ничто не возвращается Add-Content
, который только добавляет строки в файлы, поэтому $ipCidr
ничего не содержит на этом этапе.
Возможно, вы захотите попробовать
$ipCidr = Get-Content -path "currentip"
прежде чем вы продолжите заполнять хеш-таблицу:
$ipchange = @{ IpProtocol="tcp"; FromPort="1433"; ToPort="1433"; IpRanges=$ipCidr}
Синтаксис массива @()
, который вы поместили вокруг $IpRanges
, также необязателен и, вероятно, также является основнымучастник сообщения об ошибке, которое вы получаете.
Grant-EC2SecurityGroupIngress -GroupId sg-0d28d1cbc04d5df91 -Region us-east-2 -IpPermission $ipchange
Теперь, когда элемент IpRanges
больше не пустой, powershell может выполнить преобразование в Amazon.EC2.Model.IpPermission
.