Script
远行的风
喜欢写生 编程 音乐 设计 喜欢把自己的想法变成实实在在的东西 喜欢安静的做一些事情,网易Blog:http://khome.blog.163.com
展开
-
[Azure]使用Powershell导出所有订阅下的ARM虚拟机的信息
针对脚本中涉及到的知识点说明:1. 脚本输出结果调用office的excel模块输出到一个excel的sheet中2. 脚本中包含了通过powershell控制excel的cell格式,例如对齐方式,边框样式等等,行列宽度高度自适应(autofit),以及锁定(freeze)首行首列的方法3. 由于ARM模式下虚拟机,IP,网卡这些资源都是独立的,互相之间引用,如果拿到每一台虚拟机信息原创 2018-02-07 16:32:35 · 880 阅读 · 0 评论 -
[Azure]ARM虚拟机整机磁盘快照[3]——清空虚拟机快照
继续上一小节,清空快照比删除某组虚拟机磁盘快照要更容易一些,不需要进行区分或者分区,我们遍历所有虚拟机的磁盘,列出全部快照删除即可,脚本如下:param( [Parameter(Mandatory = $true)] [string]$SubscriptionName, [Parameter(Mandatory = $true)] [string]$Re原创 2017-08-05 12:42:57 · 422 阅读 · 0 评论 -
[Azure]ARM虚拟机整机磁盘快照[2]——删除快照
前面说到整机快照,这一节做一下快照的删除。分为两个脚本,删除单个快照和删除全部快照,思路稍有不同,所以分别来做。删除单个快照相对比较复杂,我们在前面说过,制作整机快照的时候,我们会先做 OS Disk 的快照,做好后再做 Data Disk 的快照,这样我们就可以从 OS Disk 的时间作为基准点来把 Data Disk 的快照找到。脚本中的 FindMatchSnapshot 方法就是原创 2017-08-05 12:36:48 · 513 阅读 · 0 评论 -
[Azure]ARM虚拟机整机磁盘快照[1]——创建快照
这一篇分为三个部分,创建整机快照,删除虚拟机快照,从快照还原虚拟机。第一部分先介绍快照功能,创建快照的思路比较简单,利用 Microsoft.WindowsAzure.Storage 库中的方法来获取 Blob 并为其创建快照。由于是对虚拟机进行整机磁盘快照,所以做的时候先要获取虚拟机的 OS Disk 和 Data Disk 的信息,获取出来后,再针对这些磁盘全部做一遍快照就好了。需要注意的原创 2017-08-05 12:18:24 · 1274 阅读 · 0 评论 -
[Azure]ARM模式下删除虚拟机挂盘修复后恢复的脚本(非托管磁盘)
使用Azure虚拟机经常会遇到无法连接的问题,比如我们修改了虚拟机防火墙,修改了注册表,修改了配置文件,系统磁盘文件系统挂掉了等等。遇到这种问题的时候,由于Azure没有开放控制台登录虚拟机的功能,所以只能将原来的虚拟机以保留磁盘的方式删除掉,然后将系统磁盘挂载到其他机器上修复各种问题,再使用修复后的磁盘重新创建出虚拟机来。对于经典虚拟机(ASM)来说,挂盘后的重建可以通过界面完成原创 2017-08-18 09:29:36 · 439 阅读 · 0 评论 -
[Azure]ARM模式下删除虚拟机挂盘修复后恢复的脚本(托管磁盘)
使用Azure虚拟机经常会遇到无法连接的问题,比如我们修改了虚拟机防火墙,修改了注册表,修改了配置文件,系统磁盘文件系统挂掉了等等。遇到这种问题的时候,由于Azure没有开放控制台登录虚拟机的功能,所以只能将原来的虚拟机以保留磁盘的方式删除掉,然后将系统磁盘挂载到其他机器上修复各种问题,再使用修复后的磁盘重新创建出虚拟机来。对于经典虚拟机(ASM)来说,挂盘后的重建可以通过界面完成,但原创 2017-08-17 20:15:28 · 598 阅读 · 0 评论 -
[Azure]使用Powershell调整ARM虚拟机的系统磁盘和数据磁盘大小
要调整ARM虚拟机的磁盘大小,首先需要将虚拟机在管理界面关闭掉。 关闭虚拟机后,使用下面的命令获取虚拟机对象:$vm= Get-AzureRmVm -ResourceGroupName -Name 查看系统盘和数据盘:PSC:\Users\DanielHX> $vm.StorageProfile.OsDiskOsType : Windows原创 2017-08-17 13:57:14 · 947 阅读 · 0 评论 -
[Azure]使用Powershell将ARM虚拟机(托管磁盘)加入可用性集
前面一篇Blob说明了非托管磁盘虚拟机如何使用Powershell通过重建的方式加入可用性集,这一篇给大家提供托管磁盘的版本。托管磁盘其实与非托管磁盘的代码几乎一样,区别仅仅在于托管磁盘添加磁盘的方式以及可用性集的类型稍有不同,思路是一样的,话不多说,我们直接看代码:param( [Parameter(Mandatory = $true)] [string]$Subscr原创 2017-08-16 19:54:48 · 644 阅读 · 1 评论 -
[Azure]使用Powershell将ARM虚拟机加入可用性集
Azure ARM模式下创建的虚拟机只有一次机会加入可用性集,也就是在这台虚拟机新创建的时候,创建完成后,就不能变更可用性集的设置了。而偏偏可用性集又与负载均衡等功能密切相关,只有加入同一可用性集的虚拟机才能配置负载均衡等功能,所以这就尴尬了,只能删除虚拟机保留磁盘,然后再重建虚拟机将其加入可用性集。下面的脚本可以帮助自动完成这个过程,首先脚本会收集当前虚拟机的信息(基本信息,磁盘,网络等原创 2017-08-15 16:41:00 · 562 阅读 · 1 评论 -
Powershell导入并调用公网的ps1脚本中的方法
貌似 Powershell 无法直接导入公网上的一些 “ps1” 文件中的函数,所以测试了一下一个比较鸡贼的方法,分享一下。我们举个例子,之前的 Blog 里面介绍过 Invoke-Parallel 这个方法(http://blog.csdn.net/qwertyupoiuytr/article/details/54142403),但是这个方法非常非常长,如果把这个方法扔到自己的 “ps1”原创 2017-07-13 17:30:04 · 4400 阅读 · 0 评论 -
[Azure]使用Azure Powershell上传本地目录中的文件文件(递归)
针对ASM环境的脚本:param( # SrcDir [Parameter(Mandatory = $true)] [string]$SrcDir, # Subscription Name [Parameter(Mandatory = $true)] [string]$SubscriptionName, # StorageAccou原创 2017-06-22 15:34:50 · 541 阅读 · 0 评论 -
[Azure] 使用Azure Powershell脚本查看账号下所有订阅中的云服务公网IP地址绑定情况
本脚本可以查看经典模式下云服务的公网IP的固定情况,便于管理员查看并及时将需要固定却没有固定的云服务VIP固定下来。代码如下:$cred = Get-Credential -Message "Use your Azure account to login";[void](Add-AzureAccount -Environment AzureChinaCloud -Credenti原创 2017-05-10 16:03:23 · 956 阅读 · 0 评论 -
[Azure]ARM虚拟机整机磁盘快照[4]——从快照还原虚拟机
这个还原脚本有一个小前提,就是原虚拟机不能先删除,原因是为了简化操作和参数,脚本会从原来虚拟机的属性中读取资源组,虚拟网络,可用性集等属性,然后直接利用原虚拟机的某个时间点的快照在和原虚拟机同一子网下面创建出一台类似的虚拟机。新的虚拟机由于不能使用原来的网络接口和IP地址,所以会重新生成这些对象。如果希望将原虚拟机删除,可以在这个脚本的基础上进行酌情修改,比如可以先记录原虚拟机的各种信息,然后原创 2017-08-05 12:55:39 · 1252 阅读 · 0 评论 -
[Azure]ARM模式托管磁盘的快照与还原[1]——创建与查看
本文中包含两个脚本,一个是托管磁盘的快照创建脚本,一个是托管磁盘查看快照的脚本。比较简单,只是几个命令的调用,这里就不详细解释具体的语句意义了,大家直接看脚本吧:创建快照的脚本:param( [Parameter(Mandatory = $true)] [string]$SubscriptionName, [Parameter(Mandatory原创 2017-08-21 17:11:31 · 421 阅读 · 0 评论 -
[Azure]ARM模式托管磁盘的快照与还原[2]——删除与恢复
本文中包含两个脚本,一个是删除托管磁盘快照的脚本,一个是使用托管磁盘快照还原磁盘的脚本。比较简单,只是几个命令的调用,这里就不详细解释具体的语句意义了,大家直接看脚本吧:删除快照的脚本:param( [Parameter(Mandatory = $true)] [string]$SubscriptionName, [Parameter(Man原创 2017-08-21 17:44:16 · 708 阅读 · 0 评论 -
[Azure]使用Powershell获取ASM和ARM存储的实际使用量
在下面两篇的基础上修改了一点脚本,加入了统计Blob实际大小的部分:http://blog.csdn.net/qwertyupoiuytr/article/details/77527998http://blog.csdn.net/qwertyupoiuytr/article/details/77527951针对ASM下存储账号的脚本:param( [Pa原创 2017-08-30 17:24:58 · 425 阅读 · 0 评论 -
[Azure] 使用azure cli 2.0 利用Key Vault创建自签名证书导入nginx
链接参考:https://docs.azure.cn/zh-cn/virtual-machines/linux/tutorial-secure-web-server安装cli 2.0 的步骤这里略去。首先创建一个新的资源组:az group create --name dantstrg --location chinanorth需要注意一点:上面创建的资源组的名称一定要使用原创 2017-11-24 14:56:20 · 684 阅读 · 0 评论 -
[Azure]ARM模式下批量清理未使用的托管磁盘
Azure ARM模式下提供了托管磁盘这种磁盘管理方式,虚拟机不用了之后删除掉,磁盘会残留下来造成资源浪费,可以使用下面的脚本进行批量清理。脚本调用 Invoke-Parallel 来实现并发操作,提高清理效率。内容和思路比较简单,脚本内容如下:$scriptSrc = "http://danielnorthstorage.blob.core.chinacloudapi.cn/fordow原创 2017-10-11 16:06:25 · 380 阅读 · 0 评论 -
[Azure]使用Powershell重新生成ARM虚拟机网卡
Azure ARM 的 Windows 虚拟机如果将网卡禁用会直接导致无法连接。解决方法是将网卡的内网IP地址设置为静态地址,将地址的值修改为子网下的另外一个未使用的地址即可。保存设置后,这个操作会为虚拟机分配一个新的网卡。除了上面简单的方法外,还可以使用下面的脚本进行网卡重置,脚本本身相对于上面的操作要复杂的多,之所以写出来,主要是方便更为深入的理解 ARM 模式下各个功能组件互相之间的原创 2017-03-14 19:57:50 · 869 阅读 · 0 评论 -
使用Powershell解析Json的算法实现
Json格式解析可以利用递归的方式,主要的两大结构是数组和字典,所以利用这个规律交叉递归解析就可以了。即字典中递归调用字典和数组解析,数组中递归调用字典和数组解析,这样无论Json数据有多少层,都可以完全解析出来,不需要提前知道整个数据结构的情况。为了方便解析,这个脚本里面我们要求解析的Json的格式是标准的,需要用行进行数据的区分,例如下面这种数据格式:{ "name": "原创 2017-09-28 15:19:03 · 4791 阅读 · 0 评论 -
[Azure]使用Powershell删除ARM模式下单台虚拟机及相关资源(托管磁盘)
对于ARM虚拟机,删除后,默认会保留磁盘文件,以及网络接口,IP地址等资源。所以如果不手工删除,这些垃圾资源会占用账号的资源,产生额外的话费,因此整理了一个脚本用于删除虚拟机的同时将这些垃圾资源清理掉。本脚本针对托管磁盘虚拟机。脚本如下:param( [Parameter(Mandatory = $true)] [string]$SubscriptionNam原创 2017-09-08 19:33:39 · 478 阅读 · 0 评论 -
[Azure]使用Powershell删除ARM模式下单台虚拟机及相关资源(非托管磁盘)
对于ARM虚拟机,删除后,默认会保留磁盘文件,以及网络接口,IP地址等资源。所以如果不手工删除,这些垃圾资源会占用账号的资源,产生额外的话费,因此整理了一个脚本用于删除虚拟机的同时将这些垃圾资源清理掉。本脚本针对非托管磁盘虚拟机。脚本如下:param( [Parameter(Mandatory = $true)] [string]$SubscriptionNa原创 2017-09-08 19:31:55 · 422 阅读 · 0 评论 -
[Azure]使用Powershell克隆ARM虚拟机(托管磁盘)
ARM模式下对多磁盘虚拟机捕获映像再批量创建需要对磁盘进行一般化操作,然后使用模板进行创建,整个过程比较复杂,因此为了简化操作,整理了一个用于克隆虚拟机的脚本。特别针对多网卡虚拟机以及网卡多IP的情况进行了逻辑处理。但是对于诊断等设置没有进行克隆。注意这个脚本针对托管磁盘虚拟机。脚本如下:param( [Parameter(Mandatory = $true原创 2017-09-08 19:19:47 · 640 阅读 · 0 评论 -
[Azure]使用Powershell克隆ARM虚拟机(非托管磁盘)
ARM模式下对多磁盘虚拟机捕获映像再批量创建需要对磁盘进行一般化操作,然后使用模板进行创建,整个过程比较复杂,因此为了简化操作,整理了一个用于克隆虚拟机的脚本。特别针对多网卡虚拟机以及网卡多IP的情况进行了逻辑处理。但是对于诊断等设置没有进行克隆。注意这个脚本针对非托管磁盘的虚拟机。脚本如下:param( [Parameter(Mandatory = $true)]原创 2017-09-08 19:06:06 · 503 阅读 · 0 评论 -
[Azure]使用Powershell统计ARM存储账号下容器中Blob的使用情况
脚本比较简单,不做过多介绍,唯一需要注意的是考虑到存储账号下文件数量过多的情况(例如十万或者百万级的文件数),为了避免单次Query过多文件数导致卡死或者超时,因此脚本中使用了一个$tokenStop变量限制每次Query Blob的上线(脚本中定义的是5000一次,如果觉得有需要可以改成10000,不要太多)。脚本如下:param( [Parameter(Mandatory原创 2017-08-24 11:30:55 · 424 阅读 · 0 评论 -
[Azure]使用Powershell统计经典存储账号下容器中Blob的使用情况
脚本比较简单,不做过多介绍,唯一需要注意的是考虑到存储账号下文件数量过多的情况(例如十万或者百万级的文件数),为了避免单次Query过多文件数导致卡死或者超时,因此脚本中使用了一个$tokenStop变量限制每次Query Blob的上线(脚本中定义的是5000一次,如果觉得有需要可以改成10000,不要太多)。脚本如下:param( [Parameter(Mandatory原创 2017-08-24 11:30:50 · 469 阅读 · 0 评论 -
[Azure]ARM中使用Azure Powershell批量规划虚拟网络
ARM模式中为虚拟网络和子网的创建提供了相关的命令,因此可以很方便地根据具体的拓扑来使用命令创建,节约人力时间。涉及到的两条命令:New-AzureRmVirtualNetworkAdd-AzureRmVirtualNetworkSubnetConfig刨去网络安全组的配置,我们单纯利用上面两条命令做了一个简单的脚本用于批量创建虚拟网络:Function Cre原创 2017-09-05 15:02:06 · 323 阅读 · 0 评论 -
[Azure]使用Powreshell跨区域拷贝托管磁盘
针对托管磁盘目前还没有提供直接的API或者任何借口可以进行跨区域拷贝,所以暂时只能通过一个相对取巧的方法,就是先使用托管磁盘“导出”这个功能生成一个可访问的Uri,然后将这个Uri作为源拷贝到目标区域,然后在目标区域使用拷贝得到的vhd文件创建一个托管磁盘。完成后,将过程中创建的一些临时的存储等数据都清除掉即可。需要注意的问题是,经过实际测试,通过Powershell使用vhd创建得到托管原创 2017-08-22 15:27:43 · 419 阅读 · 0 评论 -
[Azure]Azure虚拟机扩展的介绍和使用
VM Agent简介VM Agent是部署在虚拟机内的一个进程,用于协助管理,配置和加速虚拟机。在使用官方映像创建虚拟机的最后一个步骤中有配置VM Agent的选项。对于Windows虚拟机而言,常见的一些VM Agent的应用例如在背景中看到的虚拟机信息,就是由VM Agent安装的扩展BGInfo配置的:还可以通过VM Agent安装扩展原创 2017-04-27 23:24:22 · 2130 阅读 · 0 评论 -
python单线程文件传输范例(C/S)
客户端代码:#-*-encoding:utf-8-*-import socketimport osimport sysimport mathimport timedef progressbar(cur, total): percent = '{:.2%}'.format(float(cur) / float(tota原创 2017-03-24 22:48:12 · 1624 阅读 · 2 评论 -
[Azure]获取当前订阅下所有ARM虚拟机的PublicIP
functionGetVMIP($vmName,$rgName){ # get VM $vm =Get-AzureRmVM -Name$vmName -ResourceGroupName$rgName-ErrorActionSilentlyContinue # get nic name from nic原创 2017-02-15 14:58:13 · 690 阅读 · 0 评论 -
Scapy畸形报文攻击
网络攻击可分为拒绝服务型攻击、畸形报文攻击和扫描窥探攻击三大类。畸形报文攻击是通过向目标系统发送有缺陷的IP报文,使得目标系统在处理这样的 IP包时会出现崩溃,给目标系统带来损失。主要的畸形报文攻击有 Ping of Death、Teardrop等。 常见的畸形报文攻击方法:Ping of Death攻击Ping of Death俗称“死拼”,其攻击原理原创 2017-01-24 00:24:39 · 5363 阅读 · 0 评论 -
[Azure]ARM模式下使用Powershell找出订阅中没有被使用的vhd
此脚本通过Powershell来找到ARM订阅中没有被使用的VHD,脚本如下:$storages= Get-AzureRmStorageAccount;foreach ($storagein $storages){ # get storage context $context = $storage.Context; #get p原创 2017-01-17 17:17:15 · 492 阅读 · 0 评论 -
[Azure]Azure经典模式中单个云服务下的虚拟机开机脚本
脚本实现了对于单个云服务中的虚拟机批量开机的功能,并通过循环检测虚拟机状态来判断是否有未成功开机的情况,针对这种情况会再次尝试开机,最终保证虚拟机全部成功开启。脚本内容如下;$cloudServiceName = "";$VMNames="VM Name 1","VMName 2","VM Name 3","VM Name 4","VM Name n";$C原创 2017-01-16 23:39:55 · 836 阅读 · 0 评论 -
[Azure]使用Powershell获取ARM模式下可用的虚拟机平台映像信息
使用下面的Powershell脚本获取可用的Publisher, Offer, Sku,Image:$images= New-Object System.Collections.ArrayList;$location= "China North";$publishers= Get-AzureRmVMImagePublisher-Locat原创 2017-01-08 22:59:04 · 943 阅读 · 0 评论 -
[Azure]使用Powershell输出经典模式下全部云服务的VIP
本文介绍如何将经典模式中当前订阅下的所有云服务与其VIP的对应关系输出,一共有三种不同的方法:通过Deployment的VirtualIPs属性来获取(推荐方法):$services = Get-AzureService;$VerbosePreference = "SilentlyContinue";$dnsResult = New-Object 'System.Collections原创 2017-01-08 22:52:59 · 934 阅读 · 0 评论 -
[Azure]使用Powershell批量添加虚拟机ACL
需要说明的是,对于每个Endpoint,最多可以添加50个ACL规则。参考链接:http://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits 设置ACL规则:$vm = Get-AzureVM–ServiceName"MyCloudS原创 2017-01-08 22:15:32 · 1281 阅读 · 0 评论 -
[Azure]使用Azure Automation实现自动开关虚拟机的操作
关于Azure Automation功能的使用请参考链接:http://www.windowsazure.cn/documentation/articles/automation-create-runbook-from-samples/ 首先,我们需要创建一个自动化账号(Automation Account):在弹出的界面中填写自动化账号名称(用原创 2017-01-08 21:10:39 · 1138 阅读 · 0 评论 -
[Azure]Azure Automation调用非默认的DLL库
Azure经典门户中的Automation功能提供了非常方便的计划任务功能,可以让很多定时任务在Azure中完成,而不需要额外用本地的机器去执行计划任务,大大节省了成本。但是Azure Automation中提供的库毕竟有限,那么如果我们需要用到的DLL库不在其中,如何将其导入到Automation的“资产”中并进行引用呢?请看下文:首先说明一下本地DLL的打包和导入方法:原创 2017-01-08 00:26:48 · 934 阅读 · 0 评论 -
[Azure]使用Powershell获取Azure ARM模式订阅下的一些常用信息
获取当前订阅下的虚拟机的基本信息:Get-AzureRmVM | select Name, ResourceGroupName, Location,@{Name="VmSize"; Expression={$_.HardwareProfile.VmSize}},@{Name="Sku"; Expression={$_.StorageProfile.ImageReference.Sku}},@{原创 2017-01-08 00:15:05 · 2155 阅读 · 0 评论