Powershell kullanarak Azure Devops denetim dinlenme api devam belirteci

Oct 16 2020

Seçili alanlar için csv dosyasında denetim günlükleri raporu çıkarması gereken komut dosyası üzerinde çalışıyorum. Geri kalan api sonucu sınırlaması nedeniyle tüm verileri aynı anda alamıyorum. Devam belirtecini manuel olarak iletirsem sonraki veri kümesini alabilirim ancak komut dosyasının belirli bir zaman çerçevesi için tüm günlükleri oluşturmasını istiyorum

Tüm verileri döndürmeyen bu betiği denedim -

$personalAccessToken = "" $auth = [Convert]::ToBase64String([Text.Encoding]::                  
ASCII.GetBytes(":$($personalAccessToken)"))

$headers = @{} $headers.Add("Authorization", "Basic $auth") do { $uri = "https://auditservice.dev.azure.com/{org}/_apis/audit/auditlog?      
startTime=2020-07-01T00.00.00&endTime=2020-10-   
15T16.00.00&continuationToken=$continuationToken&api-version=6.0- preview.1" $TestRuns = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get    
| Select-Object -ExpandProperty decoratedAuditLogEntries | 
Where-Object { $_.actionId -eq 'Git.RepositoryCreated' } | Select-Object actorDisplayName, ProjectName, actionId, details, timestamp $continuationToken = $TestRuns.Headers.'x-ms-continuationtoken' $TestRuns
}
while ($continuationToken -ne $null)

Ayrıca Invoke-webrequest ile denedim, ayrıca tüm verileri sağlamıyor. Büyük kütüklerim var.

Tüm verileri nasıl alabilirim?

Yanıtlar

megha Oct 18 2020 at 15:36

İşte benim için çalışan çözüm -

$personalAccessToken = "" $auth =  
[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes
(":$($personalAccessToken)"))

$headers = @{} $headers.Add("Authorization", "Basic $auth") do { $uri =     
"https://auditservice.dev.azure.com/{organization}/_apis/audit/auditlog?  
startTime=2020-09-20T20:42:20:3094806Z&endTime=2020-10-
15T20:42:20:3094806Z&continuationToken=$continuationToken&api-version=6.0- preview.1" $TestRuns = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get 

$result = @( $TestRuns | Select-Object -ExpandProperty     
decoratedAuditLogEntries | 
Where-Object { $_.actionId -eq 'Git.RepositoryCreated' } | Select-Object actorDisplayName, ProjectName, actionId, details, timestamp ) $continuationToken = $TestRuns.continuationToken $result | Export-Csv "/data.csv" -Append
}

while ($null -ne $continuationToken)