이 문서는 JIRA Powershell Script 활용하여 모든 유저에 그룹 추가하기(비활성화 유저 포함) 가이드를 공유하기 위해 작성되었다.
| 도구명 | Jira, Powershell |
|---|
Powershell Script 활용하여 모든 유저 그룹 추가하기(비활성화 유저 포함)
Powershell
- 윈도우 키 → Powershell ISE 실행 → 새로 만들기
- 스크립트 중요내용
2번줄: Jira Url
5~6번줄: Jira admin 계정 및 패스워드
7번줄: 넣을 그룹명
8번줄: 총 유저 수
41번줄:includeInactive=true비활성화 유저 포함 여부(필요없을 시 해당 부분 삭제) - 스크립트
#Url 및 api 주소
$base_url = ""
# admin 계정 정보
$user =""
$password = ""
$groupname = "test"
$total_list = 10000
$LogArray = @()
# SSL 인증서 오류 일 경우, SSL 인증서 문제 없을 경우 해당 부분 필요 X
Add-Type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
public bool CheckValidationResult(
ServicePoint srvPoint, X509Certificate certificate,
WebRequest request, int certificateProblem){
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls, [Net.SecurityProtocolType]::Tls11, [Net.SecurityProtocolType]::Tls12, [Net.SecurityProtocolType]::Tls13, [Net.SecurityProtocolType]::Ssl3
# 인증 인코딩
function Get-BasicAuthCreds {
param([string]$Username, [string]$Password)
$AuthString = "{0}:{1}" -f $Username,$Password
$AuthBytes = [System.Text.Encoding]::ASCII.GetBytes($AuthString)
return [Convert]::ToBase64String($AuthBytes)
}
$BasicCreds = Get-BasicAuthCreds -Username $user -Password $password;
$basicAuthValue = "Basic $BasicCreds"
$Headers = @{
Authorization = $basicAuthValue
}
$LogArray = @()
$number = 0
while($number -le (${total_list}+1000)){
$get_user_list = "/rest/api/2/user/search?username=.&includeInactive=true&startAt=${number}&maxResults=1000"
$get_filter = Invoke-WebRequest -Uri "${base_url}${get_user_list}" -Method Get -ContentType 'application/json' -Headers $Headers
if($get_filter -ne $null){
$filter_name = ($get_filter.Content | ConvertFrom-Json).name
$filter_name | ForEach-Object{
$group_api = "/rest/api/2/group/user?groupname=${group_name}"
$adduser = $_
#Group 추가
try{
$form1 = '{"name": "' + ${adduser} + '"}'
$form = [System.Text.Encoding]::UTF8.GetBytes($form1)
$group_add = Invoke-WebRequest -Uri "${base_url}${group_api}" -Method Post -ContentType 'application/json' -Headers @{"Authorization"="Basic $BasicCreds"} -Body $form
$LogArray += "${adduser}: ${group_name}에 추가했습니다. "
} catch{
$LogArray += "${adduser}: ${group_name}에 이미 있습니다. "
}
}
}
$number += 1000
}
$LogArray
