求助编写PowerShell脚本:查询Jira资产管理中多台笔记本的用户
编写PowerShell脚本查询Jira资产管理中拥有多台笔记本的用户
前置要求
- 拥有Jira Asset Management的API访问权限,提前在个人Jira账号中生成API令牌
- 安装PowerShell模块
JiraPS,执行以下命令完成安装:Install-Module -Name JiraPS -Scope CurrentUser -Force
实现脚本
# 配置Jira连接信息 $jiraBaseUrl = "https://你的Jira域名.atlassian.net" $jiraUsername = "你的Jira邮箱" $jiraApiToken = "你的API令牌" # 连接Jira Connect-Jira -Server $jiraBaseUrl -Credential (New-Object System.Management.Automation.PSCredential($jiraUsername, (ConvertTo-SecureString $jiraApiToken -AsPlainText -Force))) # 使用Insight JQL查询所有笔记本资产及关联用户 # 请根据实际资产类型名称、用户字段名称调整JQL语句 $laptopAssets = Get-JiraIssue -Query "objectType = '笔记本电脑' AND '用户' IS NOT EMPTY" -Fields "object", "customfield_xxxx" # 替换customfield_xxxx为用户UPN对应的自定义字段ID # 转换资产数据为结构化对象 $assetData = $laptopAssets | ForEach-Object { [PSCustomObject]@{ UserUPN = $_.Fields["customfield_xxxx"] # 替换为实际UPN字段 DeviceName = $_.Fields.object.Name SerialNumber = $_.Fields.object.Attributes.SerialNumber # 替换为实际序列号属性名 } } # 分组统计每个用户的笔记本数量,筛选出数量>1的用户 $userLaptopCounts = $assetData | Group-Object -Property UserUPN | Where-Object { $_.Count -gt 1 } # 合并数据,添加数量字段后输出 $result = $userLaptopCounts | ForEach-Object { $userUpn = $_.Name $count = $_.Count $_.Group | ForEach-Object { $_ | Add-Member -MemberType NoteProperty -Name "笔记本数量" -Value $count -PassThru } } # 输出结果 $result | Select-Object UserUPN, DeviceName, SerialNumber, "笔记本数量" | Format-Table -AutoSize
关键说明
- 替换脚本中的
你的Jira域名、你的Jira邮箱、你的API令牌为实际信息 - 调整JQL中的
objectType值为你Jira资产里笔记本对应的类型名称 - 替换
customfield_xxxx为存储员工UPN的自定义字段ID,可在Jira自定义字段设置中查看 - 若序列号的属性名不是
SerialNumber,需改为资产实际的序列号属性名称
内容的提问来源于stack exchange,提问作者h_akm
相关产品推荐
相关产品推荐

