使用PowerShell快速获取Azure中的SQL Server VM
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这次来分享一个自己写的脚本,任何脚本当然都是有原始需求推动的,这个脚本的功能其实很简单,他可以帮助我们快速筛选出Azure账号中SQL Server的VM,写这个脚本的原因也是因为有人问,现在环境中有
千家信息网最后更新 2026年11月02日使用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安全错误
数据库的锁怎样保障安全
咖啡豆
蓝思科技飞鸽互联网
重生之互联网科技帝国
互联网 科技公司
善班互联网科技有限公司
友谊互联网络科技
成都狮子座互联网科技
华中科技有哪些互联网大佬
隆华科技工业互联网
中国科技创新与世界互联网大会
元气玛特互联网科技公司是外包吗
小米互联网科技园入驻
互联网科技年终奖
互联网科技包装股
萌小萌互联网科技河南有限公司
版纳互联网科技选哪家
互联网科技收购价值
科技互联网公司两年变化
陕西彩京云互联网科技有限公司
互联网科技企业文化
互联网金融科技
盈实互联网科技
丰台科技园 互联网公司
互联网巨头投资的硬核科技
卫星互联网科技股票
国大互联网教育科技有限公司薪资
四川互联网展示科技馆设计
互联网高科技行业有哪些企业
中国新注册互联网科技
互联网 科技节活动 微视频大赛