Get-ADUser PowerShell cmdlet을 사용하면 Active Directory 사용자, 해당 특성 및 도메인 사용자 간의 검색에 대한 정보를 얻을 수 있습니다. AD에서 정보를 가져오는 데 가장 널리 사용되는 PowerShell cmdlet 중 하나입니다. Get-ADUser cmdlet을 사용하면 AD 사용자 계정의 특성 값을 가져오고, 특성이 있는 도메인 사용자를 나열하고, 사용자 보고서를 CSV 파일로 내보내고, 다양한 기준을 사용하여 도메인 사용자를 선택 및 필터링할 수 있습니다.
Active Directory PowerShell 모듈의 Get-ADUser Cmdlet
Get-ADUser
cmdlet은 Active Directory와 상호 작용하기 위한 특수 모듈인 Windows PowerShell용 Active Directory 모듈에 포함되어 있습니다. . RSAT-AD-PowerShell 모듈 cmdlet을 사용하면 AD 개체에 대해 다양한 작업을 수행할 수 있습니다.
이 예에서는 Get-ADUser PowerShell cmdlet을 사용하여 사용자의 암호가 마지막으로 변경된 시간, 암호가 만료된 시간 및 다른 사용자의 속성에 대한 정보를 가져오는 방법을 보여줍니다.
RSAT-AD-PowerShell 모듈을 사용하려면 관리자 권한 PowerShell 콘솔을 실행하고 다음 명령을 사용하여 모듈을 가져와야 합니다.
가져오기-모듈 ActiveDirectory
RSAT-AD-PowerShell 모듈은 AD DS(Active Directory 도메인 서비스) 역할을 배포할 때 Windows Server 2012 이상에 기본적으로 설치됩니다. 도메인 구성원 Windows Server 호스트에 모듈을 설치하려면 다음 명령을 실행하십시오.
Install-WindowsFeature -이름 "RSAT-AD-PowerShell" –IncludeAllSubFeature
데스크톱 Windows 10/11에서 Get-ADUser cmdlet을 사용하려면 적절한 버전의 RSAT를 설치해야 합니다. 설정을 통해 RSAT를 활성화할 수 있습니다. -> 앱 -> 선택적 기능 -> 기능 추가 -> RSAT:Active Directory 도메인 서비스 및 경량 디렉터리 서비스 도구 .
PowerShell을 사용하여 Windows 10 및 11에 RSAT AD 모듈을 설치할 수 있습니다.
Windows 기능 추가 – 온라인 – 이름 "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0"
RSAT-AD-PowerShell 모듈이 컴퓨터에 설치되어 있지 않은 경우 Get-ADUser 명령을 실행할 때 오류가 나타납니다.
Get-ADUser: The term 'get-aduser' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
모듈이 설치되어 있는지 확인하고 필요한 경우 PowerShell 세션으로 가져옵니다.
가져오기-모듈 ActiveDirectory
컴퓨터에 RSAT를 설치하지 않고 AD-PowerShell 모듈을 사용하는 방법도 있습니다. 기본 모듈 파일을 복사하고 모듈을 PowerShell 세션으로 가져오기만 하면 됩니다.
가져오기-모듈 "C:\PS\AD\Microsoft.ActiveDirectory.Management.dll"
가져오기-모듈 "C:\PS\AD\Microsoft.ActiveDirectory.Management.resources.dll"
Get-ADUser cmdlet의 모든 인수에 대한 전체 목록은 다음과 같이 얻을 수 있습니다.
도움말 Get-ADUser
Get-ADUser를 사용하여 AD 사용자를 찾고 속성을 나열하는 방법
Get-ADUser cmdlet을 사용하기 위해 도메인 관리자 또는 위임된 권한이 있는 계정으로 실행할 필요가 없습니다. 인증된 AD 도메인 사용자는 PowerShell 명령을 실행하여 대부분의 AD 개체 속성 값을 가져올 수 있습니다(기밀 속성 제외, 로컬 관리자 암호 솔루션 – LAPS 문서의 예 참조). 다른 계정으로 Get-ADUser 명령을 실행해야 하는 경우 –자격 증명을 사용하세요. 매개변수.모든 도메인 사용자 계정 목록을 표시하려면 다음 명령을 실행하십시오.
Get-ADUser -필터 *
Set-ADUser 사용 cmdlet을 사용하여 Active Directory 사용자 특성을 변경합니다.
특정 사용자의 속성을 표시하려면 –Identity
를 사용하십시오. 매개변수. ID는 사용자 이름, 로그인(SAMAccountName), DN(고유 이름), SID 또는 GUID일 수 있습니다.
다음 PowerShell 명령은 동일한 AD 사용자 계정에 대해 동일한 결과를 반환합니다.
Get-ADUser –Identity b.smith
Get-ADUser –Identity "CN=Brian Smith,OU=Users,OU=Berlin,DC=woshub,DC=loc"
Get-ADUser – 신원 "브라이언 스미스"
기본적으로 Get-ADUser cmdlet은 10개의 기본 사용자 특성(120개 이상의 사용자 계정 속성 중)만 반환합니다. DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, 계정 상태(사용:UserAccountControl AD에 따라 True/False 속성) 등. 이 경우 cmdlet의 출력에는 마지막 사용자 암호 변경 시간에 대한 정보가 포함되지 않습니다.
특정 도메인 컨트롤러에서 AD 쿼리를 실행하려면 -Server를 사용하세요. 옵션:
Get-ADUser – 서버 DC01.woshub.com – ID tstuser
다른 AD 도메인에서 사용자 데이터를 가져와야 하는 경우 액세스하기 위해 도메인 컨트롤러 이름과 자격 증명을 지정해야 합니다.
$ADcred =Get-Credential
Get-ADUSer tstuser -Server DC01.contoso.com -Credential $ADcred
사용 가능한 모든 사용자 속성에 대한 자세한 정보를 표시하려면 다음 명령을 실행하십시오.
Get-ADUser -identity tuser -properties *
속성 *이 있는 Get-ADUser cmdlet 스위치는 모든 AD 사용자의 속성과 해당 값(빈 속성 포함)을 나열합니다. Active Directory 사용자 및 컴퓨터 그래픽 스냅인(dsa.msc
)에서 유사한 사용자 특성 목록을 사용할 수 있습니다. ) 속성 편집기 탭 아래에 있습니다.
그런 다음 필요한 사용자 특성이 표시되도록 Get-ADUser 출력 형식으로 이동합니다. 예를 들어 다음 사용자 속성의 값을 표시하려고 합니다.
- 비밀번호 만료됨
- PasswordLastSet
- 비밀번호가 만료되지 않음
- LastLogonTimestamp
다음 명령을 실행하십시오.
Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp
이제 사용자 데이터에는 계정 암호 상태(만료:True/False), 마지막 암호 변경 날짜 및 마지막 사용자가 도메인에 로그온한 시간(lastlogontimestamp
기인하다). 이 정보를 보다 편리한 테이블 보기에 표시하고 불필요한 속성을 모두 제거하려면 Select-Object –Property를 사용하세요. 및 형식-표 :
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft 이름, PasswordExpired, PasswordLastSet, PasswordNeverExpires
Get-ADUser -SearchBase:특정 OU에서 사용자 가져오기
특정 도메인 컨테이너(조직 단위)의 사용자만 표시하려면 –SearchBase 를 사용하십시오. 매개변수:
Get-ADUser -SearchBase 'OU=런던,DC=woshub,DC=loc' -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft 이름, PasswordExpired, PasswordLastSet, PasswordNeverExpires
한 번에 여러 OU에서 사용자를 선택해야 하는 경우 다음 PowerShell 스크립트를 사용하십시오.
$OUs ="OU=NY,DC=woshub,DC=com","OU=LA,DC=woshub,DC=com","OU=MA,DC=woshub,DC=com"
$OU | foreach {Get-ADUser -SearchBase $_ -Filter * |이름 선택, 활성화됨}
PowerShell을 사용하여 AD에서 사용자의 이메일 주소를 가져오는 방법
사용자 이메일 주소는 Active Directory의 사용자 개체 속성 중 하나입니다. 사용자의 이메일 주소를 나열하려면 EmailAddress를 추가해야 합니다. 필드를 Get-ADUser cmdlet의 속성에 추가합니다.
Get-ADUser -filter * -properties EmailAddress -SearchBase 'OU=Paris,OU-Fr,DC=woshub,DC=com'| 개체 이름 선택, EmailAddress
이메일 주소가 있는 활성화된 사용자 계정 목록:
Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | 개체 이름, 성, 지정 이름, 메일 선택 | 형식-표
이메일 주소가 없는 Active Directory 사용자 목록을 얻으려면:
Get-ADUser -Filter * -Properties EmailAddress | 여기서 -Property EmailAddress -eq $null
다음 예에서는 회사 이메일 목록을 AD에서 CSV 파일로 내보낼 수 있습니다. 나중에 이 CSV 주소 목록을 Outlook 또는 Mozilla Thunderbird와 같은 데스크톱 이메일 클라이언트로 가져올 수 있습니다.
Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | 개체 이름, 성, 지정 이름, 메일 선택 | Export-Csv -NoTypeInformation - 인코딩 utf8 -delimiter "," $env:temp\adress_list.csv
Get-ADUser:PowerShell을 사용하여 Active Directory 사용자를 CSV로 내보내기
속성이 있는 도메인 사용자의 결과 목록을 텍스트 파일로 내보낼 수 있습니다.
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft 이름, PasswordExpired, PasswordLastSet, PasswordNeverExpires> C:\temp\users.txt
또는 AD 사용자 목록을 CSV 파일로 내보낼 수 있습니다.
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | 여기서 {$_.name –like "*Dmitry*"} | 정렬 개체 PasswordLastSet | 개체 이름, PasswordExpired, PasswordLastSet, PasswordNeverExpires 선택 | 내보내기-csv -경로 c:\tmp\user-passwords-expires.csv -추가 - UTF8 인코딩
Get-ADUser 필터 예
–필터 사용 스위치를 사용하면 하나 이상의 속성으로 사용자 계정 목록을 필터링할 수 있습니다. 이는 속성이 지정된 기준과 일치하는 AD 사용자를 검색하는 데 유용합니다. Active Directory 사용자의 특정 속성 값은 이 매개변수에 대한 인수로 지정할 수 있습니다. –Filter
를 사용하는 경우 매개 변수를 사용하면 Get-ADUser cmdlet은 필터 기준과 일치하는 사용자만 표시합니다.
예를 들어 이름에 "Dmitry가 포함된 활성(활성화된) 사용자 계정을 나열하고 싶습니다. ". 아래 예에서는 여러 필터를 사용합니다. 논리적 PowerShell 비교 연산자를 사용하여 조건을 결합할 수 있습니다. 이 예에서 사용자 속성은 두 필터 조건(- 및 ):
Get-AdUser -Filter "(Name -like '*Dmitry*') -and (Enabled -eq 'True')" -Properties * |select name,enabled
모든 PowerShell 논리 연산자는 사용자 특성에 대한 값을 선택하는 데 사용할 수 있습니다(-eq
, -ne
, -gt
, -ge
, -lt
, -le
, 유사
, -notlike
, -및
, -또는
등)
또한 개체 정렬을 사용하여 특정 사용자 속성을 기준으로 결과 사용자 목록을 정렬할 수 있습니다. cmdlet. where-Object를 사용할 수도 있습니다. 한 번에 여러 필터링 기준을 지정하는 cmdlet.
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires -SearchBase 'OU=NY,DC=woshub,DC=com'| 여기서 {$_.name –like "*Dmitry*" -and $_.Enabled -eq $true} | 정렬 개체 PasswordLastSet | 개체 이름, PasswordExpired, PasswordLastSet, PasswordNeverExpires 선택
따라서 필요한 Active Directory 속성이 있는 사용자 목록을 얻을 수 있습니다.
한 번에 여러 속성(legacyExchangeDN, proxyAddresses, SAMAccountName, Surname, DisplayName, SamAccountName, physicalDeliveryOfficeName, RDN 및 msExchMailNickname)으로 사용자를 검색하려면 모호한 이름 확인(ANR
) 기능:
Get-ADUser -Filter {anr -eq 'John'} | 이름
선택
Get-ADUser 쿼리에서 LDAP 필터를 사용할 수 있습니다. LDAP 필터는 –LdapFilter를 사용하여 지정됩니다. 속성.
Get-ADUser -LDAPFilter '(&(department=it)(title=sysops))'
PowerShell Get-ADUser 예제
다양한 필터를 사용하여 Active Directory 사용자를 쿼리하기 위한 몇 가지 더 유용한 PowerShell 명령 예제를 보여 드리겠습니다. 이들을 결합하여 필요한 AD 사용자 개체 목록을 얻을 수 있습니다.
이름이 Joe로 시작하는 AD 사용자 표시 :
Get-ADUser -filter {name -like "Joe*"}
PowerShell을 사용하여 Active Directory의 총 사용자 계정 수를 계산할 수 있습니다.
Get-ADUser -Filter {SamAccountName -like "*"} | 측정 개체
비활성화된 Active Directory 사용자 계정 찾기:
Get-ADUser -Filter {사용 -eq "False"} | 개체 선택 SamAccountName,Name,Surname,GivenName | 형식-표
다음 명령을 사용하여 Active Directory 사용자 계정 생성 날짜를 확인할 수 있습니다.
get-aduser -Filter * -속성 이름, WhenCreated | 이름 선택, 생성 시
지난 24시간 동안 생성된 새로 추가된 Active Directory 사용자 목록을 확인할 수 있습니다.
$lastday =((Get-Date).AddDays(-1))
Get-ADUser -filter {(whencreated -ge $lastday)}
만료된 암호가 있는 계정 나열(도메인 암호 정책에서 암호 만료 옵션을 구성할 수 있음):
Get-ADUser -filter {Enabled -eq $True} -속성 이름, 암호 만료됨| 여기서 {$_.PasswordExpired}|이름 선택,비밀번호 만료
작업:텍스트 파일에 저장된 사용자 계정 목록(한 줄에 한 계정)의 경우 AD에서 사용자의 회사 이름을 가져와 CSV 파일로 저장해야 합니다(이 파일을 Excel로 쉽게 가져올 수 있음).
가져오기-Csv c:\ps\users_list.csv | ForEach {
Get-ADUser -identity $_.user -속성 이름, 회사 |
이름, 회사 선택 |
Export-CSV c:\ps\users_ad_list.csv -Append -Encoding UTF8
}
지난 90일 동안 도메인 비밀번호를 변경하지 않은 사용자:
$90_Days =(Get-Date).adddays(-90)
Get-ADUser -filter {(passwordlastset -le $90_days)}
비활성 사용자 계정을 찾습니다(도메인에 180일 이상 로그온하지 않음). lastLogonTimestamp 속성은 도메인에 대한 사용자의 로그온 기록을 가져오는 데 사용됩니다.
$LastLogonDate=(Get-Date).AddDays(-180)
Get-ADUser -Properties LastLogonTimeStamp -Filter {LastLogonTimeStamp -lt $LastLogonDate } | ?{$_.Enabled –eq $True} | LastLogonTimeStamp 정렬| FT 이름, @{N='lastlogontimestamp'; E={[DateTime]::FromFileTime($_.lastlogontimestamp)}} -자동 크기
Active Directory에서 사용자의 사진을 가져와 jpg 파일로 저장하려면 다음 명령을 실행합니다.
$usr =Get-ADUser sjoe -속성 썸네일 사진
$usr.thumbnailPhoto | Set-Content sjoe.jpg -인코딩 바이트
사용자 계정이 속한 AD 그룹 목록을 얻으려면:
Get-AdUser sjoe -속성 구성원 | 선택 memberof -expandproperty memberof
특정 도메인 보안 그룹의 구성원인 OU의 사용자 나열:
Get-ADUser -SearchBase 'OU=로마, OU=이탈리아, DC=woshub, DC=com' -Filter * -속성 구성원 | Where-Object {($_.memberof -like "*CEO*")}
특정 도메인 보안 그룹의 구성원인 OU의 사용자 나열:
Get-ADUser -SearchBase 'OU=로마, OU=이탈리아, DC=woshub, DC=com' -Filter * -속성 구성원 | Where-Object {($_.memberof -like "*CEO*")}
특정 그룹의 구성원을 제외한 OU의 모든 사용자 나열:
$Users =Get-ADUser -filter * -SearchBase 'OU=Berlin,DC=woshub,DC=com' -properties memberOf
ForEach($Users의 $User)
{
$Groups =-join @($User.memberOf)
If ($Groups -notlike '*Domain Admins*')
{
$User.Name
}
}
조직 단위 이름이 있는 AD 사용자 목록을 Out-GridView 테이블로 내보내기:
get-aduser -filter * -Properties cn,canonicalname | 선택 이름,userprincipalname,@{이름="OU";표현식={$_.Canonicalname.substring(0,$_.canonicalname.length-$_.cn.length)}}| Out-GridView
AD 사용자 계정이 존재하는지 확인하십시오.$SamAccountName='jbrown'
if (@(Get-ADUser -Filter { SamAccountName -eq $SamAccountName }).Count -eq 0)
{ Write-Host "$SamAccountName 사용자가 존재하지 않습니다."}
사용자가 로그인할 수 있는 도메인 컴퓨터를 나열합니다(LogonWorkstations AD 속성을 통한 로그온 제한).
Get-ADUser jbrown -Properties LogonWorkstations | 형식 목록 이름, LogonWorkstations