Preciso exportar usuários de várias UOs para os respectivos nomes de UOs CSV

Preciso exportar usuários de várias UOs para os respectivos nomes de UOs CSV

Eu tenho um script que irá coletar a lista de usuários que não fizeram login antes de janeiro de 2018 e colocá-los em um único CSV.

Eu preciso da saída como a saída dos usuários OU1 vai para ou1.csv, a saída dos usuários ou2 vai para OU2.csv.

Aqui abaixo o script que eu tenho.

$Today = (get-date -f MM-dd-yyyy)

$OUs = (Get-Content E:\DATA\Password lastset before jan 2018\OU.txt)
foreach ($OU in $OUs)
{

  Get-ADUser -filter {Enabled -eq $true} -SearchBase $OUs -Properties DisplayName,SamAccountName,distinguishedname,cn,PasswordNeverExpires,passwordlastset,LastLogonDate,EmailAddress |
  where{ $_.PasswordNeverExpires -eq $false } | where{$_.passwordlastset -le ((get-date).adddays(-90))} |
  Where{ $_.LastLogonDate -le ((get-date).adddays(-240))} |
  select samaccountname, Displayname, 
@{n='ParentContainer';e={$_.distinguishedname -replace '^.+?,(CN|OU.+)','$1'}},@{Name="PasswordAge";`
Expression={((Get-Date)-$_.PasswordLastSet).days}}, @{N="LastLogonDate";E={$_.LastLogonDate}},@{n="EmailAddress";E={$_.EmailAddress}} |
  Export-CSV "E:\DATA\PasswordPolicy\ADUser lastlogon on or before Jan 2018 report-$Today.csv" -NoTypeInformation -Encoding UTF8

}
$Body = "ADUser lastlogon before Jan 2018"

Send-mailmessage -to "[email protected]" -from [email protected] -SmtpServer usvasmtp -Body $Body -subject "OU1 ADUser lastlogon on or before Jan 2018 - Report For $Today" -Attachments "E:\DATA\PasswordPolicyEmail\OU1-$Today.csv"

Send-mailmessage -to "[email protected]" -from [email protected] -SmtpServer usvasmtp -Body $Body -subject "OU2 ADUser lastlogon on or before Jan 2018 - Report For $Today" -Attachments "E:\DATA\PasswordPolicyEmail\OU2-$Today.csv"

Responder1

Substituir:

Export-CSV "E:\DATA\PasswordPolicy\ADUser lastlogon on or before Jan 2018 report-$Today.csv" -NoTypeInformation -Encoding UTF8

Com:

Export-CSV $path -NoTypeInformation -Encoding UTF8

Adicionar:

$path = "E:\DATA\PasswordPolicy\" + $ou + ".csv"

no status do loop foreach

se você especificar o DN completo em seu OU.txt, poderá usar algo semelhante, como $($ou.split("ou=")[-1]) também corrigir seu Searchbase:-SearchBase $OU

informação relacionada