运行指定PowerShell命令需导入的模块及PSIpRule创建报错解决
解决Azure存储账户IP白名单添加时的PSIpRule类型找不到问题
一、导入对应模块
Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule类型属于Az.Storage模块,先确保模块已安装并导入:
- 安装模块(未安装时执行):
Install-Module -Name Az.Storage -Force -AllowClobber - 导入模块:
Import-Module -Name Az.Storage
二、推荐:无需手动创建PSIpRule对象的简便方法
官方不推荐直接实例化PSIpRule这类内部类型,你可以直接用哈希表构造规则数组,Add-AzStorageAccountNetworkRule命令会自动解析:
# 构造IP规则数组(支持多条规则) $ipRules = @( @{ IpAddressOrRange = "192.168.1.0/24" # IP段或单个IP Action = "Allow" }, @{ IpAddressOrRange = "10.0.0.1" Action = "Allow" } ) # 执行添加操作 Add-AzStorageAccountNetworkRule -ResourceGroupName $rgName -Name $storageAccountName -IPRule $ipRules
三、若需手动创建PSIpRule对象
如果必须实例化该类型,可以通过现有存储账户的规则对象获取类型后再创建:
# 获取目标存储账户的现有网络规则类型 $storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $storageAccountName $ipRuleType = $storageAccount.NetworkRuleSet.IpRules.GetType().GetElementType() # 创建PSIpRule对象并赋值 $rule = New-Object -TypeName $ipRuleType.FullName $rule.IpAddressOrRange = "172.16.0.0/16" $rule.Action = "Allow" # 添加规则 Add-AzStorageAccountNetworkRule -ResourceGroupName $rgName -Name $storageAccountName -IPRule $rule
内容的提问来源于stack exchange,提问作者MathGeek
相关产品推荐
相关产品推荐

