현재 특정 그룹의 구성원이 지난 30 일 동안 AD에 로그인하지 않은 것을 확인하려고합니다. 그룹의 모든 사용자를 반환 할 수 있지만이 Foreach - 개체 루프에 파이핑 할 때 문제가 있습니다.ForEach 개체 루프의 중첩 IF 문
import-module activedirectory
$DaysInactive = 30
$time = (Get-Date).Adddays(-($DaysInactive))
get-adgroupmember -identity "Remote Users" | foreach-object {
if ($_.LastLogonDate -lt $time) {
write-host $_.SamAccountName
}
}
나는 문제가 LastLogonDate를 호출하고 그 결과로 내가 그것을 인식하지 않다는 오류를받을 때 내가 AD 사용자 속성을 사용하고 있다고 생각합니다. 루프 내에서 get-aduser
cmdlet가 필요하다고 생각하지만 -filter
의 값으로 보낼 내용을 확신 할 수 없습니다.
에서 PowerShell이 모든 구성원을 검색 할 때 결과 집합을 배열에 배치합니까? 그렇다면 마지막 로그온 날짜의 값을 어떻게 검색 할 수 있습니까?
해야 be :'if ($ _. LastLogonDate -lt $ time)' – arco444
또한 .LastLogonDate 속성은 기본적으로 검색되지 않습니다. Get-ADGroupMember에서 반환 된 각 항목을 가져 와서 Get-ADUser를 사용하여 .LastLogonDate 속성을 명시 적으로 가져와야합니다. – EBGreen
@EB 그린 당신이 맞습니다. arco444의 제안을 적용한 이후로 조건문을 평가하지 않은 채 모든 멤버를 반환합니다. 필터를 지정해야 할 때 Get-ADUser로 무엇을 지정합니까? – JLPH