如何用powershell脚本查看用户的操作记录
admin
2023-01-25 05:40:41
0

本文以azure为例,为大家分析用powershell脚本查看用户的操作记录的方法。阅读完整文相信大家对powershell脚本的使用方法有了一定的认识。

下边来看下代码的内容,其实是很简单的

param (
    [parameter(Mandatory = $false)]
    [Int]$MaxRecords = 100000,
    [parameter(Mandatory = $true)]
    [string]$User
    
)


function Write-DateTimeMessage {
    param (
        [parameter(Mandatory = $false)]
        [switch]$Warning,
        [parameter(Mandatory = $true)]
        [string]$Message,
        [parameter(Mandatory = $false)]
        [string]$ForegroundColor
        
    )
    
    
    if ($Warning) {
        Write-Warning ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message)
    }
    else {
        if ($ForegroundColor) {
            Write-Host ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message) -ForegroundColor $ForegroundColor
        }
        else {
            Write-Host ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message)
        }
    }
    
}

                  
[pscustomobject[]]$UserObjects = $null

$Subscriptions = Get-AzureRmSubscription

foreach ($subscription in $Subscriptions) {
    
    " "
    "Querying Subscription:"
    $SubscriptionID = $Subscription.Id
    $SubscriptionName = $Subscription.Name
    Select-AzureRmSubscription -SubscriptionId $SubscriptionID -InformationAction SilentlyContinue
    
    Write-DateTimeMessage -Message "Retrieving logs, please wait..."
    $logs = Get-AzureRmLog -ResourceProvider Microsoft.Compute -StartTime (Get-Date).AddDays(-90) -Maxrecord $MaxRecords

    foreach ($log in $logs) {
        if ($log.caller -eq $User) {
            $UserObject = New-Object -TypeName psobject
            $UserObject | Add-Member -MemberType NoteProperty -Name SubscriptionName -Value $SubscriptionName
            $UserObject | Add-Member -MemberType NoteProperty -Name SubscriptionID -Value $SubscriptionID
            $UserObject | Add-Member -MemberType NoteProperty -Name ResourceGroup -Value $log.ResourceGroupName
            $UserObject | Add-Member -MemberType NoteProperty -Name Caller -Value $log.caller
            $UserObject | Add-Member -MemberType NoteProperty -Name Operation -Value $log.OperationName.Value
            $UserObject | Add-Member -MemberType NoteProperty -Name ResourceId -Value $log.ResourceId
            $UserObject | Add-Member -MemberType NoteProperty -Name Time -Value $log.EventTimestamp
            $UserObjects += $UserObject

        }

    }

}

$OutputPath = Join-Path -Path ([Environment]::GetFolderPath("Desktop")) -ChildPath ("AzureUserAction-" + $(Get-Date -Format "yyyyMMdd-HHmmss") + ".csv")

if ($null -ne $UserObjects) {
    
    $UserObjects | Export-Csv -NoTypeInformation -LiteralPath $OutputPath
    Write-DateTimeMessage -Message "Please check $OutputPath" -Warning
}
else {
    Write-DateTimeMessage  "Didn't get information, please check" -warning
    
}



    我们来尝试着运行一下脚本Get-AzureUserActionLog.ps1 -User "xxx@xxx.partner.onmschina.cn", -User的作用是我们可以根据这个参数筛选出来特定的用户

    如何用powershell脚本查看用户的操作记录


脚本执行完成后,可以在桌面上看到一个csv文件,里边会记录查询出来log

如何用powershell脚本查看用户的操作记录

提醒一点,因为Azure后台的限制,这只能查询到最近90天之内的log。

看完这篇文章,你们学会用powershell脚本查看用户的操作记录了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读。 

相关内容

热门资讯

女子身份证丢失后名下出现“吸毒... 四川籍的庞女士定居浙江宁波多年,她怎么也没想到,因丢失身份证一事,竟让她陷入长达7年“自证清白”的困...
省农科院成功研发我省首个高粱全... 近日,记者从省农科院获悉,该院作物资源研究所、农业生物技术研究所联合石家庄博瑞迪生物,成功研制出省内...
消息称AMD与Anthropi... IT之家 7 月 22 日消息,据华尔街日报消息,AMD 与 Anthropic 达成了一项价值数百...
独家!苹果iPhone18系列... 7月22日,中国证券报记者从产业链人士处独家获悉,进入7月,苹果iPhone 18系列手机已在量产,...
29岁的党鑫蕊倒在广西泥泞山路... 7月11日晚一通叮嘱,成了父子最后的对话;几天后父亲在殡仪馆见到一身泥的儿子,才知道“他走得有多难。...
时隔一年,英国国防大臣斯特里廷... 一年前,当时还是英国卫生大臣的韦斯·斯特里廷(Wes Streeting)曾公开指责以色列犯下战争罪...
微软与Mistral宣布扩大战... 【CNMO科技消息】7月22日,据韩媒报道,微软与法国AI企业Mistral正式宣布大幅扩大双方战略...
东方空间引力一号(遥四)运载火... 本报讯 (记者袁传玺)北京时间7月22日10时54分,东方空间引力一号(遥四)·星联体号运载火箭在我...
“你的手上沾满鲜血”,美防长出... 当地时间21日,美国国防部长赫格塞思在出席国会参议院听证会时表示,根据最新估算,美国对伊朗战事的花费...
Kimi K3让美国羡慕又不甘... 北京时间7月17日凌晨,月之暗面公司发布开源大模型Kimi K3。据报道,该模型总参数规模达2.8万...