使用PowerShell快速获取Azure中的SQL Server VM
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这次来分享一个自己写的脚本,任何脚本当然都是有原始需求推动的,这个脚本的功能其实很简单,他可以帮助我们快速筛选出Azure账号中SQL Server的VM,写这个脚本的原因也是因为有人问,现在环境中有
千家信息网最后更新 2025年01月31日使用PowerShell快速获取Azure中的SQL Server VM
这次来分享一个自己写的脚本,任何脚本当然都是有原始需求推动的,这个脚本的功能其实很简单,他可以帮助我们快速筛选出Azure账号中SQL Server的VM,写这个脚本的原因也是因为有人问,现在环境中有哪些VM是SQL Server的,通过平台本身的Portal其实很难筛选出来这些信息,所以特地写了一个脚本,当然,这个脚本还是有一些限制,只能筛选出Azure VM+SQL License模式的虚拟机,对于直接在VM内部安装SQL Server的虚拟机,因为平台本身不会记录这类的信息,所以从平台层面是没办法筛选出来的
以下是脚本的内容,分享一下
function Write-DateTimeMessage{ param ( [parameter(Mandatory = $false)] [switch]$Warning, [parameter(Mandatory = $true)] [string]$Message, [parameter(Mandatory = $false)] [string]$ForegroundColor ) if ($Warning) { Write-Warning ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message) } else { if ($ForegroundColor) { Write-Host ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message) -ForegroundColor $ForegroundColor } else { Write-Host ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message) } } }[pscustomobject[]]$SQLVMObjects = $null$Subscriptions = Get-AzureRmSubscriptionforeach ($subscription in $Subscriptions){ "Querying subscription:" $SubscriptionID = $Subscription.Id $SubscriptionName = $Subscription.Name Select-AzureRmSubscription -SubscriptionId $SubscriptionID -InformationAction SilentlyContinue Get-AzureRmResourceGroup | %{ $RG = $_ Write-DateTimeMessage -Message "Checking Resource Group $($RG.ResourceGroupName)" $AzureVMs = Get-AzureRmVM -ResourceGroupName $RG.ResourceGroupName if ($null -ne $AzureVMs) { $AzureVMs | %{ $AzureVM = $_ if($AzureVM.StorageProfile.ImageReference.Publisher -like "*SQLServer*") { Write-DateTimeMessage -Message "Find SQL Server VM $($AzureVM.Name) in resource group $($RG.ResourceGroupName)" -Warning $SQLVMObject = New-Object -TypeName psobject $SQLVMObject | Add-Member -MemberType NoteProperty -Name SubscriptionName -Value $SubscriptionName $SQLVMObject | Add-Member -MemberType NoteProperty -Name SubscriptionID -Value $SubscriptionID $SQLVMObject | Add-Member -MemberType NoteProperty -Name AzureVMName -Value $AzureVM.Name $SQLVMObject | Add-Member -MemberType NoteProperty -Name ResourceGroupName -Value $AzureVM.ResourceGroupName $SQLVMObject | Add-Member -MemberType NoteProperty -Name Location -Value $AzureVM.Location $SQLVMObjects += $SQLVMObject } } } } }$OutputPath = Join-Path -Path ([Environment]::GetFolderPath("Desktop")) -ChildPath ("SQLVM-" + $(Get-Date -Format "yyyyMMdd-HHmmss") + ".csv")if ($null -ne $SQLVMObjects){ $SQLVMObjects | Export-Csv -NoTypeInformation -LiteralPath $OutputPath Write-DateTimeMessage -Message "Please check $OutputPath" -Warning}else{ Write-DateTimeMessage "Maybe no SQL VM in the environment or didn't get information, please check" -warning}
运行的方法非常简单,直接运行命令即可,以下是一些截图
运行结束后,会将信息导出到CSV文件中,便于整理
因为隐私原因,细节的信息就不展示了哈,各位可以根据需要使用
脚本
信息
平台
运行
原因
选出
原始
内容
办法
功能
命令
层面
截图
文件
方法
模式
环境
细节
账号
还是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库添加数据语句
傲新网络技术工作室
东为网络技术公司招聘
谷歌工程师怎么提高数据库
一体化实验软件开发花费
花海软件开发
epm软件开发商
非专业人员erp软件开发
简述什么是计算机网络技术
四川计算机网络技术
荒野求生租服务器多少钱
万方数据库算查重嘛
数据库安全防护设置
天津拓宇数字网络技术有限
数据库的服务化系统
sql 删除数据库 语句
张家港华为软件开发招聘
大众汽车网络安全责任
郎溪智能软件开发服务维修价格
ssl服务器可能需要更新
济南历城区服务器工厂
推荐服务器的起床之王dfg
软件开发配机
石家庄有软件开发学校吗
云南自由互联网科技待遇
学校网络技术部面试自我介绍
网络安全监督检查自查表
网络技术开发公司策划
眉县互联网科技
成本分析软件开发商