簡體   English   中英

使用 Powershell 的 Azure Devops 審計 rest api 延續令牌

[英]Azure Devops audit rest api continuation token using powershell

我正在編寫腳本,該腳本應該在 csv 文件中為所選字段輸出審計日志報告。 由於 rest api 結果限制,我無法一次獲取所有數據。 如果我手動傳遞繼續令牌,我可以獲得下一組數據,但我希望腳本生成給定時間范圍內的所有日志

我試過這個不返回所有數據的腳本 -

$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)

我也嘗試過使用 Invoke-webrequest 它也不提供所有數據。 我有一大堆原木。

我怎樣才能得到所有的數據?

這是對我有用的解決方案 -

$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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM