这个脚本用于输出ASM模式下虚拟机的NSG和ACL,对于多网卡虚拟机也同样适用。可以输出所有网络接口的NSG以及虚拟机所在子网的NSG。

脚本如下:

param(#The name of the subscription to take all the operations within. [Parameter(Mandatory = $true)] [string]$SubscriptionName, # Cloud Service Name.[Parameter(Mandatory = $true)][string]$ServiceName,# Virtual Machine Name.[Parameter(Mandatory = $true)][string]$VMName
)$cred = Get-Credential;
Add-AzureAccount -Environment AzureChinaCloud -Credential $cred;Select-AzureSubscription -SubscriptionName $SubscriptionName;Function PrintVirtualMachineNetworkSecurityRules($vm)
{$customRules = New-Object System.Collections.ArrayList;#$defaultRules = New-Object System.Collections.ArrayList;$duplicateNsgs = New-Object System.Collections.ArrayList;# collect ACLs$endpoints = $vm | Get-AzureEndpoint;foreach($endpoint in $endpoints){foreach($aclRule in $endpoint.Acl.Rules){$name = $aclRule.Description;if($name -eq "")    #Description is required currently, so skip{$name = "<ACL>"}$vip = $endpoint.Vip;if($vip -eq $NULL){$vip = "<CloudSerivce Vip>";}$customRules.Add(@{RuleName=$name; Protocol=$endpoint.Protocol; Source=$aclRule.RemoteSubnet; SourcePort="*"; Dest=$vip; DestPort=$endpoint.Port; Access=$aclRule.Action; Priority=$aclRule.Order; Direction="Inbound"; Catagory="Endpoint ACL";});}}# collect NSG associated with VM$nsgToVM = $vm | Get-AzureNetworkSecurityGroupAssociation;if(!$duplicateNsgs.Contains($nsgToVM.Name)){$duplicateNsgs.Add($nsgToVM.Name);$rules = $nsgToVM.Rules;foreach($rule in $rules){$customRules.Add(@{RuleName=$rule.Name; Protocol=$rule.Protocol; Source=$rule.SourceAddressPrefix; SourcePort=$rule.SourcePortRange; Dest=$rule.DestinationAddressPrefix; DestPort=$rule.DestinationPortRange; Access=$rule.Action; Priority=$rule.Priority; Direction=$rule.Type; Catagory="VirtualMachine NSG";});}}# collect NSG associated with subnet of the VM$virtualNetworkName = $vm.VirtualNetworkName;if($virtualNetworkName -ne ""){foreach($networkConfiguration in $vm.VM.ConfigurationSets){$subnetName = $networkConfiguration.SubnetNames[0];if($subnetName -ne ""){$nsg = Get-AzureNetworkSecurityGroupAssociation -VirtualNetworkName $virtualNetworkName -SubnetName $subnetName -Detailed;if(!$duplicateNsgs.Contains($nsg.Name)){$duplicateNsgs.Add($nsg.Name);$rules = $nsg.Rules;foreach($rule in $rules){$customRules.Add(@{RuleName=$rule.Name; Protocol=$rule.Protocol; Source=$rule.SourceAddressPrefix; SourcePort=$rule.SourcePortRange; Dest=$rule.DestinationAddressPrefix; DestPort=$rule.DestinationPortRange; Access=$rule.Action; Priority=$rule.Priority; Direction=$rule.Type; Catagory="Subnet NSG";});}}}}}$customRules | select @{Name="Name"; Expression={$_["RuleName"]}}, @{Name="Protocol";Expression={$_["Protocol"]}}, @{Name="Source"; Expression={$_["Source"]}}, @{Name="SourcePort"; Expression={$_["SourcePort"]}}, @{Name="Dest"; Expression={$_["Dest"]}}, @{Name="DestPort"; Expression={$_["DestPort"]}}, @{Name="Access"; Expression={$_["Access"]}}, @{Name="Priority"; Expression={$_["Priority"]}}, @{Name="Direction"; Expression={$_["Direction"]}}, @{Name="Catagory"; Expression={$_["Catagory"]}} | Out-GridView;
}$vm = Get-AzureVM -ServiceName $ServiceName -Name $VMName;
PrintVirtualMachineNetworkSecurityRules $vm;

调用方法:

[ASM]show_virtual_machine_network_rules.ps1 -SubscriptionName <Subscription Name> -ServiceName <CloudService Name> -VMName <VM Name>

输出结果:

[Azure]使用Powershell输出某台ASM虚拟机的NSG和ACL相关推荐

  1. [Azure]使用Powershell输出某台ARM虚拟机的NSG

    这个脚本用于输出ARM模式下虚拟机的NSG,对于多网卡虚拟机也同样适用.可以输出所有网络接口的NSG以及虚拟机所在子网的NSG. 脚本如下: param(#The name of the subscr ...

  2. 微软Azure PowerShell使用指南(2) - 控制虚拟机

    如上篇,选择相应的订阅信息后,我们就可以开始使用我们的云资源.这篇我们介绍如何创建虚拟机并且通过PowerShell就可以控制虚拟机. 创建虚拟机 微软提供了非常多的操作系统镜像,从Windows 2 ...

  3. 两台ubuntu虚拟机环境下hadoop安装配置

    http://blog.itpub.net/26978437/viewspace-730136/ 按照上几篇的内容,安装好两台ubuntu虚拟机之后,首先确定好哪台机子做namenode,哪台做dat ...

  4. 访问局域网另外一台电脑虚拟机中CentOS7

    访问局域网另外一台电脑虚拟机中CentOS7 参考: https://blog.csdn.net/yangzaiqiu1986814/article/details/50788263

  5. 如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群

    如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群 克隆集群机器 通过虚拟机搭建Hadoop集群,发现使用的VMware workstation 15 player版本没有克隆功能,于是找 ...

  6. 安装一台RHEL6虚拟机

    安装一台RHEL6虚拟机  问题 新建一台RHEL虚拟机,相关配置及要求如下所述. 硬盘300GB.内存2GB 分区规划: /boot 200MB./ 100GB.SWAP 4096MB./data ...

  7. 在 Windows Azure 上部署并定制化 FreeBSD 虚拟机镜像

     发布于 2014-12-11 作者 陈阳 FreeBSD 基础镜像现已登陆中国的 VM Depot! 对于青睐 BSD 而非 Linux 的开源爱好者来说,这无疑是个好消息.同时,随着该基础镜像 ...

  8. 使用PowerShell登陆多台Windows,测试DCAgent方法

    目标: 需要1台PC用域账户远程登陆10台PC,每台登陆后的PC执行发送敏感数据的操作后,再logoff. 在DCAgent服务器上,查看这10个用户每次登陆时,DCAgent是否能获取到登陆信息(I ...

  9. 服务器虚拟多台linux,VirtualBox环境下基于多台Ubuntu虚拟机的Hadoop分布式计算环境搭建...

    export PATH=$HADOOP_HOME/bin:$PATH 接下来需要修改hadoop/conf/目录下的配置文件,共有6个文件需要修改,分别是masters.slaves.core-sit ...

最新文章

  1. Unity3D 动态加载 图片序列正反播放
  2. C++ Primer 第五版 第6章 6.7——函数指针阅读笔记
  3. 【转载】Linux 命令行快捷键 - 移动光标
  4. Xml读取和写入以及新建
  5. 那些年,我们一起玩过的响应式布局
  6. linux、mysql、nginx、tomcat 环境下压力测试的主要调试参数
  7. 流水灯c语言代码大全,单片机闪烁灯流水灯汇编代码大全
  8. oracle 10g oci.dll 下载,Oracle 11g oci.dll下载
  9. Chrome如何下载网页视频
  10. 机器学习特征工程之皮尔森相关系数 pearson correlation of features
  11. 阿里云控制台配置OSS服务
  12. Lumerical官方案例、FDTD时域有限差分法仿真学习(八)——光纤布拉格光栅(Fiber Bragg gratings)
  13. zemax设计35mm镜头_ZEMAX基础实例 - 变焦镜头设计
  14. windows无法完成安装若要在此计算机,windows无法完成安装.若要在此
  15. 微信公众号开发(1)--微信公众平台与后台服务器
  16. 服务器主板四路SLI时候出现的问题
  17. 冯 . 诺依曼体系结构对计算机发展的限制
  18. Matter Test-Harness自动化测试系统
  19. C++ libco 介绍与应用
  20. Java 用UDP协议实现远程关机

热门文章

  1. 百度云盘照片导入华为相册里_百度网盘传送列表怎样导入手机相册_手机百度网盘下载到相册...
  2. 如何压缩GIF/GIF压缩软件教程方法全面解析
  3. 压在redis身上的三座大山
  4. html5超萌哈士奇,哈士奇,是一种让人又爱又恨,又拥有自己独特风格的雪橇犬...
  5. CAD2014学习笔记-常用绘图命令和工具
  6. 【历史上的今天】1 月 18 日:微软的“技术布道者”;反盗版法案抗议行动;哈佛 Mark I 灵感起源
  7. linux操作系统是什么,操作系统概述
  8. 【MySQL5.7指南】第一章——概述
  9. 使用伪类实现划掉字体
  10. 出现单实例模式毁坏Destroying singletons