Public/Get-ExpiringAccount.ps1

Function Get-ExpiringAccount {
    <#
    .Synopsis
        Lists expiring ActiveDirectory accounts
    .Description
        Lists ActiveDirectory expiring over a given TimeSpan (in days)
    .Parameter TimeSpan
        Number of days in wich the accounts will expire
    .Example
        Get-ExpiringAccount -TimeSpan 30
        Lists accounts expiring in 30 days
    .Example
        Get-ExpiringAccount -TimeSpan 30 | Export-CSV expiringaccounts.csv
        Exports accounts expiring in 30 days to a csv
    .Inputs
        System.Int
    .LINK
        about_functions_advanced
    .LINK
        about_CommonParameters
    #>

    [CmdletBinding(
        SupportsShouldProcess = $true,
        SupportsPaging = $true,
        HelpURI = 'https://cstekelenburg.visualstudio.com/JBOSCollection/_wiki/wikis/JBOADS?pagePath=Get-ExpiringAccount'
    )]
    [OutputType([System.Object[]])]
    Param (
        [Parameter(
            Mandatory = $true,
            ValueFromPipeline = $true,
            HelpMessage = "Provide number of days in wich the accounts expire"
        )]
        [int]$TimeSpan
    )
    Begin {
        If (-not $PSBoundParameters.ContainsKey('Verbose')) {
            $VerbosePreference = $PSCmdlet.SessionState.PSVariable.GetValue('VerbosePreference')
        }
        If (-not $PSBoundParameters.ContainsKey('ErrorAction')) {
            $ErrorActionPreference = $PSCmdlet.SessionState.PSVariable.GetValue('ErrorActionPreference')
        }
    }
    Process {
        If ($PSCmdlet.ShouldProcess("ActiveDirectory", "Collect useraccounts expiring in $TimeSpan day(s)")) {
            Try {
                $PSBoundParameters.AccountExpiring = $true
                $PSBoundParameters.UsersOnly = $true

                $ExpiringAccounts = Search-ADAccount @PSBoundParameters
            } Catch {
                Write-Warning $_.Exception.Message
            }
        }
    }
    End {
        Return $ExpiringAccounts
    }
}
Set-Alias -Name Find-ExpiringAccount -Value Get-ExpiringAccount -Description "Get Expiring ActiveDirectory Accounts" -Option ReadOnly -PassThru -ErrorAction SilentlyContinue