Get-PWADDSExpiringPassword Get PWADDSExpiringPassword This cmdlet obtains all users within the domain that have a password expiring at some point This cmdlet obtains all users within the domain that have a password expiring at some point and omits those users that have an empty passwordlastset attribute Get-PWADDSExpiringPassword ExpireInDays Filters the output to return only users with passwords that expire less than or equal to the day Object Object None ADFilter Allows the ability to scope query to a specific location or user attribute ScriptBlock ScriptBlock None IncludeAll Enables the return of all users even if the the password never expires. SwitchParameter False ADFilter Allows the ability to scope query to a specific location or user attribute ScriptBlock ScriptBlock None ExpireInDays Filters the output to return only users with passwords that expire less than or equal to the day Object Object None IncludeAll Enables the return of all users even if the the password never expires. SwitchParameter SwitchParameter False None System.Object -------------------------- Example 1 -------------------------- PS C:\> Get-PWADDSExpiringPassword Gets all users and their password expiration except if the user is disabled, ,the passwword is already expired, or the password is set to never expire. -------------------------- Example 1 -------------------------- PS C:\> Get-PWADDSExpiringPassword -IncludeAll Gets all users and their password expiration except if the password less set is null. Get-PWApplicationToken Get PWApplicationToken Obtains an Application token using a client secret Intended to be used to obtain an token for an application that has Mail.Send permissions within Graph. Get-PWApplicationToken clientID Application ID of the AAD application String String None clientSecret Client secret of the application String String None Resource Used to identify the graph resource where the token will be used. https://graph.microsoft.com https://graph.microsoft.us https://dod-graph.microsoft.us String String None tenantName Full TenantName such as mydomain.onmicrosoft.com String String None Resource Used to identify the graph resource where the token will be used. String String None clientID Application ID of the AAD application String String None clientSecret Client secret of the application String String None tenantName Full TenantName such as mydomain.onmicrosoft.com String String None None System.Object -------------------------- Example 1 -------------------------- PS C:\> $param = @{ clientID = $clientID clientSecret = $sec resource = $resource tenantName = $tenantName } $token = Get-PWApplicationToken @param Providing the client ID, secret, graph resource, and tenantname, returns an OAuth token for the specified application Send-PWExpiringMailMessage Send PWExpiringMailMessage Used to send password expiration notification of ADDS Users Used to send password expiration notification of ADDS Users Send-PWExpiringMailMessage ADAccount The ADUser account object PSObject PSObject None ExpireInDaysThreshold The threshold for limiting at what time a user would be notified based on when their password expires. Int32 Int32 None LogFile If you want to log each run of this function this will enable logging and display what users were notified placing the logfile in the specified path. String String None Logging Enable logging and output the logfile to the current working directory. SwitchParameter False Resource The graph resource that will be used https://graph.microsoft.com https://graph.microsoft.us https://dod-graph.microsoft.us String String None SendEmailAccount The account that will be used to send the mail message. e.g. Shared O365 Mailbox String String None Signature The signature as a string that you would like within your email body. String String None TestAddress Used for testing, all email messages will go to this address versus the end user. String String None TextToAdd A free form string that will be within the email message body below the default line containing the number of days remaining before their password expires. String String None Token The token that will be used to send the message String String None ADAccount The ADUser account object PSObject PSObject None ExpireInDaysThreshold The threshold for limiting at what time a user would be notified based on when their password expires. Int32 Int32 None LogFile If you want to log each run of this function this will enable logging and display what users were notified placing the logfile in the specified path. String String None Logging Enable logging and output the logfile to the current working directory. SwitchParameter SwitchParameter False Resource The graph resource that will be used String String None SendEmailAccount The account that will be used to send the mail message. e.g. Shared O365 Mailbox String String None Signature The signature as a string that you would like within your email body. String String None TestAddress Used for testing, all email messages will go to this address versus the end user. String String None TextToAdd A free form string that will be within the email message body below the default line containing the number of days remaining before their password expires. String String None Token The token that will be used to send the message String String None None System.Object -------------------------- Example 1 -------------------------- PS C:\>$params = @{ Resource = $resource SendEmailAccount = $SendEmailAccount Token = $token TestAddress = $TestAddress ADAccount = $user ExpireInDaysThreshold = $ExpireInDaysThreshold TextToAdd = $TextToAddToEmail Signature = $Signature Logging = $true } Send-PWExpiringMailMessage @params -Verbose This command takes the input from the $params hashtable and then sends an email to the test address versus the configured user. This would be used in a test scenario. Prior to live implemenation. Set-PWEmailBody Set PWEmailBody This cmdlet is used to configure the email message body in JSON format for configuring the JSON payload to graph This cmdlet is used to configure the email message body in JSON format for configuring the JSON payload to graph Set-PWEmailBody Subject Subject line of the email String String None Importance Set the Importance of the email: High or Low String String None Message The message body String String None EmailAddress Email address to receive the email String String None EmailAddress Email address to receive the email String String None Importance Set the Importance of the email: High or Low String String None Message The message body String String None Subject Subject line of the email String String None None System.Object -------------------------- Example 1 -------------------------- PS C:\> Set-PWEmailBody -Subject "Your Password is Expiring in 10 Days" ` -Importance "High" ` -Message "Please change soon" ` -EmailAddress "olduser@mycompany.com" Prepares the message section of the JSON payload to be submitted to Graph for sending the email message Set-PWEmailMessagePayload Set PWEmailMessagePayload Creates the full message paylod of to send to Graph API Creates the full message paylod of to send to Graph API Set-PWEmailMessagePayload ADAccount The account that is expiring PSObject PSObject None Signature Signature to be used within the email PSObject PSObject None TextToAdd Any additional text to add to the email body String String None Set-PWEmailMessagePayload ADAccount The account that is expiring PSObject PSObject None Subject The email subject String String None ADAccount The account that is expiring PSObject PSObject None Signature Signature to be used within the email PSObject PSObject None Subject The email subject String String None TextToAdd Any additional text to add to the email body String String None None System.Object -------------------------- Example 1 -------------------------- PS C:\> Set-PWEmailMessagePayload -TextToAdd $TextToAdd -ADAccount $ADAccount -Signature $Signature Prepares the json payload for graph