이 문서는 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