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

PowerShell ile Azure Uzerinde Access Token Uretmek ve REST API Call Icinde Kullanmak

Ozellikle Powershell icindenAzure REST API kullanarak islemler yapmak istediginizde ve oncelikle kimlik dogrulama sureci kapsaminda “token” almaniz gerektiginde, asagidaki komut imdadiniza yetisecektir. Token almak icin bir cok yontem var elbette. Ne tip bir hesap kullanarak token almaya calistiginiz ya da alinacak token’in cinsi bu noktada onemli. Biz kendi kullanici hesabimiz icin token alacagiz. Token tipi “Bearer”

Buna guzel bir ornek verelim oyleyse. Meslea bir abonelik icindeki butun KeyVault kaynaklarini REST APi ve elbette az once aldigimiz token ile listeyelim.

$token = (Get-AzAccessToken).token

$headers = @{
‘Authorization’ = “Bearer $token”
}

$uri = “https://management.azure.com/subscriptions/xxxxxx-xxxxxxx-xxxxxxx-xx/providers/Microsoft.KeyVault/vaults?api-version=2021-10-01”

Invoke-RestMethod -Method Get -Uri $uri -Headers $Headers -ContentType “application/json” | select -ExpandProperty value | select name

Continue Reading PowerShell ile Azure Uzerinde Access Token Uretmek ve REST API Call Icinde Kullanmak

PowerShell ile Log Analytics Workspace Verilerini Sorgulamak

PowerShell ile bir Log Analytics Workspace icindeki veriyi alabiliriz. Bunun icin asagidaki KQL sorgusunu PowerShell ile gonderip gelen sonucu okuyabiliriz.

Oncelikle WorkspaceID bilgisine ihtiyacimiz var. Bunun icin CustomerID bilgisini aliyoruz. Sonrasinda sorgu icerigimizi olusturup “Invoke-AzOperationalInsightsQuery” komutuyla gonderiyoruz. Ben kendi ornegimde son 2 saat icindeki Azure aktivitelerini type, ResourceProvider ve CallerIP adresine gore listeletmek istedim.

$LAWorkspaceID = (Get-AzOperationalInsightsWorkspace -Name la01 -ResourceGroupName loganalytics).customerId

$Sorgu = @’

AzureActivity
| where TimeGenerated > ago(2h)
| order by TimeGenerated desc
| project CallerIpAddress,ResourceProviderValue,Type

‘@

$Results = Invoke-AzOperationalInsightsQuery -WorkspaceId $LAWorkspaceID -Query $sorgu
$Results.results

Continue Reading PowerShell ile Log Analytics Workspace Verilerini Sorgulamak

PowerShell Ile Tum Renk Kombinasyonlarini Ekrana Yazdirmak

Scriptl’eriniz icinde co gu zaman renklerden faydalaniyoruz. Kimi zaman hatalari belirtmek bazen de onemli noktalara farkindalik yaratmak icin yapiyoruz bunu. Peki hangi renklerin ekranda nasil durdugunu onceden gormek guzel olmaz mi? Boylelikle deneyerek vakit kaybetmektense begendiginizi direkt kullanabilirsiniz.

$YaziRenkleri = [enum]::GetValues([System.ConsoleColor])
$ArkaPlanRenkleri = [enum]::GetValues([System.ConsoleColor])

Foreach ($YaziRengi in $YaziRenkleri)
{
Foreach ($ArkaPlanRengi in $ArkaPlanRenkleri)
{
Write-Host (“YaziRengi: $YaziRengi ArkaPlanRengi: $ArkaPlanRengi “) -ForegroundColor $YaziRengi -BackgroundColor $ArkaPlanRengi
}
}

Continue Reading PowerShell Ile Tum Renk Kombinasyonlarini Ekrana Yazdirmak

PowerShell ile Zip Dosyalari Olusturmak ve Zip Dosyalarini Acmak

Gunluk hayatimizda cok kullandigimiz zip/unzip operasyonlarini PowerShell ile de kolayca yurutrebilirsiniz. Cok basit bir sekilde tek ya da coklu dosyalari zip arsivlerine donusturebilirsiniz. Ben asagidaki ornegimde bir klasor icindeki dosyalarin (sadece dosyalarin) yine ayni klasor icinde bulunan baska bir klasor icerisine ZIP olarak arsivlenmesini istedim. Ayni sekilde ZIP dosyasini baska bir klasor icine acma islemini de sizin icin ekledim.

Continue Reading PowerShell ile Zip Dosyalari Olusturmak ve Zip Dosyalarini Acmak

PowerShell ile Azure WebApp HTTP Log’larini Log Analytics Workspace Icerisine Gondermek

Bir WebApp uzerinde “AppServiceHTTPLogs” loglarini toplayarak Log Analytics Workspace icerisine gondermek istiyorsunuz. Bunu PowerShell nasil yaparsiniz? Boyle!

Set-AzDiagnosticSetting -ResourceId "/subscriptions/xxxxxxxxxx-xxxxx-xxxx-xxxxxxxx-/resourceGroups/RG1/providers/Microsoft.Web/sites/test7823492"
-Name AppLogs -Category AppServiceHTTPLogs -WorkspaceId "/subscriptions/XXXXXXX-XXXXXX-XXXXX-XXX/resourceGroups/DefaultResourceGroup-WEU/providers/Microsoft.OperationalInsights/workspaces/DefaultWorkspace-26c3cd8b-WEU"
-Enabled $true

Komutu calistirdiktan sonra App uzerindeki Diagnostics Setting bolumunden “AppLog” ismiyle aktive ettigimiz log ayarlarini goruntuleyebilirsiniz. Belirledigimiz Log Analytics Workspace bilgisi de yine portal icerisinde goruntulendi.

Continue Reading PowerShell ile Azure WebApp HTTP Log’larini Log Analytics Workspace Icerisine Gondermek

PowerShell ile Azure Storage Account Icerisine Dosya Yuklemek

Once Context olusturmaliyiz ki hangi Storage Account icinde islem yapacagimiz belli olsun. Access Key’i Portal icinden almayi unutmayin. Isterseniz PowerShell ile de edinebilirsiniz. Akabinde asagidaki komutlarla dosya yukleme islemini gerceklestirebiliriz.

ve Portal’dan bu islemi dogrulayabilirsiniz

Continue Reading PowerShell ile Azure Storage Account Icerisine Dosya Yuklemek