Hello
I’m having issues with my scripts below. I’m trying to pull enabled users from AD that was created from 2/1/2018 until 2/1/2019 for many different OU’s. I have it export a file in the OU level, and at the All user level. I’m getting no output on the
Write-Output $Created in the foreach loop. Any one have any Ideas? Thanks for any help. My script is below.
[pre]
function Get-EnabledAccountsAD
{
[CmdletBinding()]
Param (
[string]
$Errorlog = “c:\ps\error.txt”,
[switch]
$RecordErrors = $false
)
if($RecordErrors)
{$Null | out-file -filePath $Errorlog}
$AllUsers = @()
function Get-MyUsers
{
Param (
[parameter(Mandatory=$true)]
[string]
$OU,
[string]
$Agency
)
$AgencyUsers = @()
$InfoNeeded = @{
Name = “Nothing”
Created = “1/2/1900”
Agency = $Agency
}
$enUser = Get-ADUser -Filter ‘enabled -eq $true’ -SearchBase $OU -Properties *
$enUser
ForEach ($User in $enUser)
{
$Name = $User.DisplayName
If ($User.whenCreated -ne $Null)
{
$Created = $User.whenCreated
} Else {
$Created = “1/1/1900” #if null give a very old date
}
Write-Output $Created
[datetime] $dateTester = “2/1/2018”
If (($Created -ge $dateTester) -and ($Created -le $dateTester.Add(365)))
{
$ThisUser = New-Object -TypeName psobject -Property $InfoNeeded
$ThisUser.Name = $Name
$ThisUser.LastLogIn = $Created
If ($AgencyUsers -eq $Null)
{
$AgencyUsers = $ThisUser
} else {
$AgencyUsers += $ThisUser
}
}
}
$AgencyUsers | Export-Csv -Path “C:\ps\accounts\active$Agency.csv”
if ($AgencyUsers -eq $Null)
{
Return “No Users”
} else {
Return $AgencyUsers
}
}
$JustHold = Get-MyUsers -OU ‘OU=thisagecy,DC=mydomain,DC=com’ -Agency thisagency
if ($JustHold -ne “No Users”)
{
$AllUsers = $JustHold
}
$JustHold += Get-MyUsers -OU ‘OU=thatagency,DC=mydomain,DC=com’ -Agency thatagency
if ($JustHold -ne “No Users”)
{
if ($AllUsers -eq $Null)
{
$AllUsers = $JustHold
} Else {
$AllUsers += $JustHold
}
}
$AllUsers | Export-Csv -Path “C:\ps\accounts\active\AllNewUsers.csv”
}
#########################test lines#######################
Get-EnabledAccountsAD
[/pre]