使用PowerShell快速获取Azure中的SQL Server VM
发表于:2024-10-27 作者:千家信息网编辑
千家信息网最后更新 2024年10月27日,这次来分享一个自己写的脚本,任何脚本当然都是有原始需求推动的,这个脚本的功能其实很简单,他可以帮助我们快速筛选出Azure账号中SQL Server的VM,写这个脚本的原因也是因为有人问,现在环境中有
千家信息网最后更新 2024年10月27日使用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安全错误
数据库的锁怎样保障安全
服务器优化管理软件
dell2950服务器导轨安装
嵌入式软件开发工程师 简称
hcl数据库信息
修改服务器地址的软件
系统软件开发有什么证件
大圣服务器
本地服务器域名管理后台
方舟什么服务器比较稳定
闵行区品质软件开发定制价格
美颜特效制作软件开发
网络技术降低成本
网络技术维护与支撑
网络安全宣传周征文活动信息
浦东新区本地网络技术调试
携网通网络安全审计系统
算法岗和软件开发岗 测试岗
编程属不属于软件开发
原神手机版如何做到切换服务器
哈工大数据库系统实验2
校园网络安全主题
成都软件开发大赛
共建网络安全环境
闵行区品质软件开发定制价格
没有全球互联网根服务器的
大话西游烟火人间服务器火么
奥特曼科技互联网
中国移动互联网数据库app排名
网络安全稿子200
亳州安卓软件开发费用