Powershell ile Azuredaki Virtual Machine Listesini Çekme
Microsoft Azure’da bulunan virtual machinelere ihtiyacımız olduğunda aşağıdaki script ile hızlıca elde edebiliriz.
İşlem adımları şu şekildedir:
1- PowerShell aracılığıyla Azure’a bağlantı kurulur. 2- Azure üzerindeki abonelikler alınır. 3- Abonelikler içinde dolaşılarak Virtual Machine listesi çekilir.
#login işlemini yapalım.
try {
# YILDIZ * ile işaretlenmiş alana tenant ID yazınız.
Connect-AzAccount -Tenant ****-*****-***-******-****
#login olduktan sonra Subscriptionları çekelim.
$AllSubscription = Get-AzSubscription
}
catch {
Write-Host "Login veya Get-AzSubscription işlemi sırasında hata oluştu."
}
#Subscription arasında gezelim.
foreach ($Subscription in $AllSubscription) {
#dizi içerisinden gelen Subscriptionı seçelim.
Select-AzSubscription -SubscriptionId $Subscription
#ilgili Subscriptiondaki tüm VirtualMachineleri bir diziye atalım.
$AllVirtualMachines = Get-AzVM
#dizi içine attığımız virtual machineler içerisinde gezerken ihtiyacımız olan bilgileri alalım.
foreach ($VirtualMachine in $AllVirtualMachines) {
$VmName= $VirtualMachine.Name
$Location = $VirtualMachine.Location.ToString()
$TimeCreated = $VirtualMachine.TimeCreated.ToString()
$tags = $VirtualMachine.Tags | Out-String
$OperatingSystem = $VirtualMachine.StorageProfile.OsDisk.OsType.ToString()
try {
$powerStateStatus= (Get-AzVM -ResourceGroupName $VirtualMachine.ResourceGroupName -Name $VmName -Status).VMAgent.Statuses.DisplayStatus
$powerStateCode = (Get-AzVM -ResourceGroupName $VirtualMachine.ResourceGroupName -Name $VmName -Status).VMAgent.Statuses.Code
$DisplayStatus = (Get-AzVM -ResourceGroupName $VirtualMachine.ResourceGroupName -Name $VmName -Status).Statuses.DisplayStatus
}
catch {
Write-Host "Status sorgularını atarken hata alındı.."
}
#değişkenlere atadığımız değerleri ekrana yazdıralım.
Write-Host " VmName: $VmName | Location: $Location | OperatingSystem: $OperatingSystem | powerState: $powerStateStatus | powerStateCode: $powerStateCode | DisplayStatus: $DisplayStatus "
}
}
Örnek powershell çıktısı aşağıdaki şekildedir.