Lock 설정이 되어 있는 리소스 확인
Portal 에서 확인
- 리소스명 검색 -> Settings -> Locks

Powershell 스크립트 사용
- Connect-AzAccount
PS C:\> Connect-AzAccount
Please select the account you want to login with.
- 스크립트 실행
PS C:\> . 'C:\get-resourcelocks.ps1'
---------------------------------------------------
Checking Subscription: [구독1]
6개의 잠금을 찾았습니다.
---------------------------------------------------
Checking Subscription: [구독2]
설정된 잠금이 없습니다.
---------------------------------------------------
Checking Subscription: [구독3]
설정된 잠금이 없습니다.
[최종 잠금 리스트]
SubscriptionName LockName LockLevel Scope
---------------- -------- --------- -----
구독1 삭제금지 /subscriptions/생략...
구독1 삭제금지 /subscriptions/생략...
구독1 삭제금지 /subscriptions/생략...
구독1 삭제금지 /subscriptions/생략...
구독1 삭제금지 /subscriptions/생략...
구독1 삭제금지 /subscriptions/생략...
- 스크립트
$subscriptionNames = @("구독1", "구독2", "구독3")
$results = @()
foreach ($subName in $subscriptionNames) {
Write-Host "---------------------------------------------------" -ForegroundColor Cyan
Write-Host "Checking Subscription: [$subName]" -ForegroundColor Yellow
# 구독 존재 여부 확인 및 컨텍스트 변경
$sub = Get-AzSubscription -SubscriptionName $subName -ErrorAction SilentlyContinue
if ($null -eq $sub) {
Write-Warning "구독을 찾을 수 없습니다: $subName"
continue
}
# 해당 구독으로 컨텍스트 전환
Set-AzContext -SubscriptionId $sub.Id | Out-Null
# 모든 리소스 잠금 가져오기
$locks = Get-AzResourceLock
if ($locks.Count -eq 0) {
Write-Host "설정된 잠금이 없습니다." -ForegroundColor Gray
} else {
foreach ($lock in $locks) {
$lockEntry = [PSCustomObject]@{
SubscriptionName = $subName
LockName = $lock.Name
LockLevel = $lock.LockLevel
# Scope를 통해 잠금이 걸린 위치 확인 (Subscription/RG/Resource)
Scope = $lock.ResourceId
Notes = $lock.Notes
}
$results += $lockEntry
}
Write-Host "$($locks.Count)개의 잠금을 찾았습니다." -ForegroundColor Green
}
}
# 2. 결과 출력 (테이블 형식)
if ($results.Count -gt 0) {
Write-Host "`n[최종 잠금 리스트]" -ForegroundColor White -BackgroundColor Blue
$results | Out-GridView # 팝업 창으로 보기 좋게 출력 (로컬 환경 권장)
$results | Format-Table -AutoSize # 터미널에서 즉시 확인 시 주석 해제
}
# (선택 사항) CSV 파일로 저장하고 싶을 경우
# $results | Export-Csv -Path "./AzureResourceLocks_$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation -Encoding utf8
$results | Export-Csv -Path "C:\Workspace\Azure\AzureResourceLocks_$(Get-Date -Format 'yyyyMMdd_HHmmss').csv" -NoTypeInformation -Encoding utf8