PowerShell ile Azure Subscription Offer bilgisini goruntulemek

PowerShell ile Azure Subscription Offer bilgisini goruntulemek

Azure uzerindeki abonliklerinizin “Offer” bilgisini Portal icinden asagidaki gibi goruntuleyebiliyoruz.

Peki bu bilgiye PowerShell ile nasil erisebiliriz?

Get-AzSubscription | select -ExpandProperty SubscriptionPolicies

Subscription Policies altindaki QutaId sutunu bu bilgiyi tutar. MSDN, PayAsYouGo vs. gibi bilgiler burada listelenir.

Continue Reading PowerShell ile Azure Subscription Offer bilgisini goruntulemek

PowerShell ile Azure Key Vault Access Policy Yonetimi

Bir Azure Key Vault icindeki Access Policy’lerde degisiklik yaparak, bir kisiye, gruba ya da uygulamaya erisim yetkisi verebiliriz. Bunun icin asagidaki komutu calistirabiliriz. Ben kendi ornegimde octopus adindaki Azure AD uygulamama yetki vermek istedim. Secret, Certificate, Keys ve Managed Storage uzerinde “full” yetki verdim. Evet biraz bonkor davrandim bugun!

Siz de ServicePrincipalName parametresi icin kendi AAD uygulamanizin ApplicationID’sini yazabilirsiniz.

Set-AzKeyVaultAccessPolicy -VaultName testvault2000 -ResourceGroupName keyvaults -ServicePrincipalName “c2e46ff8-cdc6-4c0b-a593-74fcda3657aa” -PermissionsToKeys all -PermissionsToSecrets all -PermissionsToCertificates all -PermissionsToStorage all

Asagidaki komutla yaptigim degisikligi goruntuleyebilirim

Get-AzKeyVault -VaultName testvault2000

Azure Portal icinden de bu degisikligi dogrulayabiliriz.

Continue Reading PowerShell ile Azure Key Vault Access Policy Yonetimi

PowerShell ile Mevcut Bir Automation Account Icerisine Yeni Bir Runbook Eklemek

Yeni bir Runbook ihtiyaciniz var. Bir de daha onceden yazdiginiz kodun Runbook icinde calismasini istiyorsunuz. Kolay.

Import-AzAutomationRunbook -ResourceGroupName demo
-AutomationAccountName AuatomationAccount1 -Path "D:\Temp\runbook1.ps1"
-Type PowerShell -Name YeniRunbook
-Force

Unutmayalim ki, yukaridaki komut bir Import komutu. Yani aslinda yeni bir runbook olusturmaktan tek farki, size daha onceden yazdiginioz kodu ekleme olanagi vermesi. Yani ayni isimle bos bir runbook olusturma komutunu kullansam hata alirim. Hatta buyrun hata alalim.

New-AzAutomationRunbook -Name 'YeniRunbook'
-Type PowerShell -ResourceGroupName demo
-Description ‘Yepisyeni’ `
-AutomationAccountName AuatomationAccount1

Continue Reading PowerShell ile Mevcut Bir Automation Account Icerisine Yeni Bir Runbook Eklemek

PowerShell ile Azure KeyVault icindeki Secret icerigini Yazdirmak

Bir Key Vault icindeki Secret’in icerigini ekrana yazdirmak icin asagidaki komutu kullanabiliriz.

Oncesinde Secret detayini almak istedigimizde ne oluyor ona bakalim. Asagidaki komut bize icerik disinda her seyi veriyor ama Secret icerigi yok.

Buradaki onemli ayrinti “-AsPlainText” parametresi. Bu sayede Secret icerigini okuyabiliyoruz.

Get-AzKeyVaultSecret -VaultName testvault2000 -Name testsecret -AsPlainText

Continue Reading PowerShell ile Azure KeyVault icindeki Secret icerigini Yazdirmak

PowerShell ile Select-String Kullanarak Dosya Iclerinden Veri Bulmak

Bir log dosyaniz olsun ve siz bu dosya icindeki spesifik satirlari ekrana yazdirmak istiyorsunuz. Bunun da elbette bircok yolu var ancak Select-String bu yintemlerden sanirim en kolayi. Bir goz atmakta fayda var.

Ister birden fazla dosyada ayni anda arama yapabilir, aradiginiz sozcukle eslesen satirlari ekrana yazdirabilirsiniz.

Son derece kullanisli bir komut.

Continue Reading PowerShell ile Select-String Kullanarak Dosya Iclerinden Veri Bulmak

PowerShell ile Replace/Remove/Split Komutlarini Kullanarak Veri Bicimlendirmesi Yapmak

Bazen bir dosya icindeki ham verileri ayiklayarak istediginiz bilgiye ulasabilirsiniz. Bunun icin PowerShell’in gucunden faydalanabilirsiniz. Bu ornekee 3 farkli fonksiyon kullanarak istedigimiz bilgiye ulasmaya calisalim.

Asagidaki icerik bir txt dosyasinin icerigi.

Asagidaki sekilde de bu dosya icerigini goruntuleyebiliriz.

Fazlaliklardan kurtulmak icin oncelikle her satirin sonundaki “.txt” kismini atmamiz gerekiyor. Bunun icin split komutunu kullanarak “.” isaretinden itibaren veriyi ikiye bolecegiz. Bize ilk bolum laizm cunku. Yani noktanin oncesi. Bu da sifirinci obje anlamina geliyor. Daha sonra geriye kalan icerigin son 10 karakterini sabit tutup gerisi Remove fonksiyonuile siliyoruz. Ve son olarak “_” gordugumuz yerleri “/” degistirerek son seklini veriyoruz.

$icerik = gc D:\temp\test.txt

$icerik | foreach{

$satir = $psitem.split(“.”)[0]
($satir.remove(0, $satir.length -10)).replace(“_”,”/”)
}

Continue Reading PowerShell ile Replace/Remove/Split Komutlarini Kullanarak Veri Bicimlendirmesi Yapmak

PowerShell ile Azure Policy’lerin bir Resource Group icin Uygulanmasi

Oncelikle hangi Policy Definition’in uygulanmasini isteidigimize karar verelim. Bunu icin var olan Policy Definition’lari bir listeleyelim.

Get-AzPolicyDefinition | select -ExpandProperty Properties | select displayname

Yukaridaki komutun listeledigi Policy Definition’lardan hangisini uygulayacaksak tam ismini not edelim.

Sonra da ornek “demo” isimli Resource Group uzerinde bu Policy’yi uygulayalim.

Ben kendi ornegimde “Azure Backup should be enabled for Virtual Machines” isimli Policy Definition’i “demo” isimli RG uzerinde uygulayacagim.

$ResourceGroup = Get-AzResourceGroup -Name ‘demo’

$ResourceGroup = Get-AzResourceGroup -Name ‘demo’
$Policy = Get-AzPolicyDefinition | where{$psitem.properties.displayname -eq ‘Azure Backup should be enabled for Virtual Machines’}
New-AzPolicyAssignment -Name ‘VMler uzerinde yedekleme ozelligi acik olsun’ -PolicyDefinition $Policy -scope $ResourceGroup.ResourceId

Continue Reading PowerShell ile Azure Policy’lerin bir Resource Group icin Uygulanmasi

PowerShell ile Mevcut Bir Vnet icine Yeni Bir Address Space ve Subnet Eklemek

Mevcut durumdaki Virtual Network’unuze yeni bir adres blogu eklemek ve bu yeni blok icinden yeni bir subnet olusturmak isterseniz asagiki komutlari kullanabilirsiniz.

$vnet = Get-AzVirtualNetwork -Name hub-vnet -ResourceGroupName hub-network
$vnet.AddressSpace.AddressPrefixes.Add(“20.0.0.0/8”)
$YeniSubnet = New-AzVirtualNetworkSubnetConfig -Name YeniSubnet -AddressPrefix “20.1.2.0/24”
$vnet.Subnets.Add($YeniSubnet)
$vnet | Set-AzVirtualNetwork

Sonuc asagidaki gibi

Continue Reading PowerShell ile Mevcut Bir Vnet icine Yeni Bir Address Space ve Subnet Eklemek

PowerShell ile App Service Metric bilgisini yazdirmak

Ornegin bir rapor hazirlamak istesek.. Bu raporda, butun abonelilklerdeki butun App Service Plan kaynaklarinin (ASP) son 10 gun icindeki Memory ve CPU degerlerinin ortalamasi olsa. Nasil olur? Bence guzel olur. Nasil mi? Iste boyle

$data = @()
$data+=”subname, starttime,endtime,aspname,cpupercentage,memorypercentage”

$startTime = “2021-01-21T00:00”
$endTime = “2021-02-21T00:00”

$subs = (Get-AzSubscription)

foreach($sub in $subs){

select-azsubscription -SubscriptionID $sub.ID

$subname = $sub.name

$ASPs = Get-AzAppServicePlan

foreach($asp in $ASPs){
$ID = $asp.ID
$aspName = $asp.name

$CPUPercentage = (Get-AzMetric -ResourceId “$ID” -TimeGrain 00:01:00 -StartTime $startTime -EndTime $endTime -MetricName “CPUPercentage” -DetailedOutput | select -ExpandProperty data | measure average -Average).AVERAGE

$MemoryPercentage = (Get-AzMetric -ResourceId “$ID” -TimeGrain 00:01:00 -StartTime $startTime -EndTime $endTime -MetricName “MemoryPercentage” -DetailedOutput | select -ExpandProperty data | measure average -Average).AVERAGE

$data += “$subname, $starttime, $endtime, $aspname, $cpupercentage, $memorypercentage”

}

}

$data | ft

$outputstarttime = $startTime.replace(“:”,”“) $outputendtime = $endTime.replace(“:”,”“)
$reportName = “AppService_memory_CPU_raporu”

$outputfilename = “./temp/”+$reportName+”“+$outputstarttime+”“+$outputendtime+”.csv”

$data | out-file $outputfilename

Sonuc asagidaki gibi olur. Tabi benim demo ortamimda sadece 1 tane App Service Plan oldugu icin rapor cok heybetli durmadi 🙂

Continue Reading PowerShell ile App Service Metric bilgisini yazdirmak