본문 바로가기
Windows_Server/bat & PowerShell 스크립트

Windows 파일 서버 전체 폴더에서 특정 사용자 검색하는 파워쉘 스크립트

by 프리윙즈 2023. 3. 29.
728x90
반응형

윈도우 파일서버에서 200TB 안에서 검색하고 싶은 사용자가 어떤 폴더에 권한을 부여받아서

사용하고 있는지 GUI에서 찾기가 제한되어 작성하게 된 파워쉘 스크립트 입니다.

 

사번 또는 이름을 검색하면 어떠한 폴더에 권한이 부여되어 있는지 출력되게 됩니다.

 

Active Directory에서 연동해서 사용하는 윈도우 파일서버에서도 정상적으로 작동됩니다.

# 검색할 사용자명 수기 입력
$userName = Read-Host "사번 또는 이름 입력"  

$shares = Get-WmiObject -Class Win32_Share | Where-Object {$_.Type -eq 0}

foreach ($share in $shares) {
    $shareName = $share.Name
    $sharePath = $share.Path

    # 공유 폴더의 ACL 가져오기
    $acl = Get-Acl $sharePath 

    foreach ($access in $acl.Access) {
        if ($access.IdentityReference -notlike "NT AUTHORITY\*" -and $access.IdentityReference.Value -eq $userName) {
          
     # 권한이 부여된 사용자의 이름과 폴더명 출력
     Write-Output "$userName 사용자는 '$shareName' 공유 폴더의 '$sharePath' 경로에 권한이 있습니다."
        }
    }
}

 

반응형

댓글