0
다음 코드를 사용하여 사용자의 CSV 파일을 만들 수 있지만 위의 루프에서 삭제되는 사용자 만 채워지기를 원합니다. 두 가지 방법을 통합하는 방법을 보지 못했습니다. 기본적으로 삭제 된 90 일 이상 된 모든 사용자를 가져온 다음 사용자 정보가 CSV에 저장됩니다. 사전에활성 디렉토리에서 삭제 된 사용자의 CSV 파일 만들기
$OU='OU=Users,OU=Test,DC=corporate,DC=domain,DC=com'
$LISTOFACCOUNTS=Get-ADUser -Property lastlogondate -SearchBase $OU -Filter {lastLogonDate -lt $NumberDays}
$LISTOFACCOUNTS | DISABLE-ADACCOUNT -WhatIf
$LISTOFPOTENTIALDELETES=Get-ADUser -SearchBase $OU -Property Lastlogondate -Filter` {lastlogondate -lt $DeleteDate}
FOREACH ($USER in $LISTOFPOTENTIALDELETES) {
IF (($USER.Notes -notlike '*'+$OVERRIDE+'*') -and ($USER.Description -notlike` '*'+$OnLeave+'*'))
{
WRITE-HOST $USER.SamAccountName 'Deleted'
REMOVE-ADOBJECT $USER.SamAccountName -whatif
}
ELSEIF ($USER.Notes -like '*'+$OVERRIDE+'*')
{
WRITE-HOST $USER.SamAccountName 'Not removed due to Administrative Override'
}
ELSE
{
WRITE-HOST $USER.SamAccountName 'Not removed - Presently on Leave'
}
}
$memberOf = @{n='MemberOf';e={ ($_.MemberOf -replace '^CN=([^,]+).+$','$1') -join ';' }}
$LastLogonDays = @{N='Last Logon Days'; E={$($(Get-Date) - ` $([DateTime]::FromFileTime($_.LastLogon))).Days}}
$LastLogon = @{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}}
$Mail = @{ Name = 'mail'; Expression = { $_.mail -join ';'; }; }
$Description = @{N='Description'; E={$_.description -join ';'; }; }
Get-ADUser -Filter * -SearchBase $OU -Properties * | Select Enabled, SAMAccountName, ` CanonicalName, Displayname,Givenname, Surname, Department, `
ProfilePath, HomeDrive, $Description, $LastLogonDays, $LastLogon, $mail, $memberOf |
Export-CSV "E:\Temp\_DisabledUserList.csv"
건배
방금 IF 문이 내 코드에서 잘못되었음을 확인 했으므로 양쪽 모두가 참인 시나리오가 없으므로 '- 또는 -'가 없어야합니다. 건배 Ansgar 좋은 작품! –