Het wordt aanbevolen om gebruikers niet te dwingen hun wachtwoord volgens een schema te wijzigen, tenzij er aanwijzingen zijn voor een inbreuk op de beveiliging. Soms wilt u echter controleren wanneer de gebruikers voor het laatst hun wachtwoord hebben gewijzigd. In dit artikel leert u hoe u de datum en tijd van de laatste wachtwoordwijziging van Microsoft 365-gebruikers kunt exporteren met Microsoft Graph PowerShell.
Installeer Microsoft Graph PowerShell
Voer PowerShell uit als beheerder en installeer de Microsoft Graph PowerShell-module.
Install-Module Microsoft.Graph -ForceBelangrijk:Update altijd naar de nieuwste versie van de Microsoft Graph PowerShell-module voordat u een cmdlet of script uitvoert om fouten en onjuiste resultaten te voorkomen.
Maak verbinding met Microsoft Graph PowerShell
U moet verbinding maken met Microsoft Graph PowerShell met de juiste machtigingen.
Connect-MgGraph -Scopes "User.Read.All"Wilt u verbinding maken zonder gebruikersinteractie omdat u wilt dat een script automatisch wordt uitgevoerd? Stel het in met certificaatgebaseerde authenticatie of een clientgeheim. Lees meer in het artikel Verbinding maken met Microsoft Graph PowerShell.
Ontvang de datum en tijd van de laatste wijziging van het wachtwoord van Microsoft 365-gebruikers
Voer de onderstaande opdracht uit om alle Microsoft 365-gebruikers de datum en tijd van hun laatste wachtwoordwijziging te geven.
Get-MgUser -All -Property DisplayName, UserPrincipalName, LastPasswordChangeDateTime | Select-Object -Property DisplayName, UserPrincipalName, LastPasswordChangeDateTimeDe uitvoer verschijnt.
DisplayName UserPrincipalName LastPasswordChangeDateTime
----------- ----------------- --------------------------
Alison Bell [email protected] 16/04/2024 17:57:46
Amanda Morgan [email protected] 04/06/2024 17:39:05
Audrey Graham [email protected] 11/10/2024 11:12:34
Boris Campbell [email protected] 11/12/2024 17:12:17Hoewel de resultaten geweldig zijn, willen we meer informatie over elke Microsoft 365-gebruiker. Laten we een rapport maken om meer eigenschappen op te halen en dit naar een CSV-bestand te exporteren.
Exporteer het rapport over de laatste wachtwoordwijziging van Microsoft 365-gebruikers met PowerShell
Het PowerShell-script Export-M365LastPassChange.ps1 haalt alle gebruikers en de datum en tijd van hun laatste wachtwoordwijziging op in de Microsoft 365/Entra-tenant. Daarna exporteert het het rapport naar een CSV-bestand. U kunt het CSV-bestand openen met Microsoft Excel of een andere toepassing die de CSV-bestandsextensie ondersteunt.
Het script verzamelt de volgende informatie:
- Identiteitskaart
- GebruikerPrincipalName
- Weergavenaam
- Wachtwoordbeleid
- LaatsteWachtwoordVeranderDatumTijd
- GemaaktDatumTijd
- Domein
- MaxPasswordLeeftijd
- WachtwoordLeeftijd
- VerlooptAan
- Resterende dagen
Volg de onderstaande stappen om de laatste wachtwoordwijziging van alle gebruikers in Microsoft 365 met PowerShell te exporteren:
Stap 1. Download Export-M365LastPassChange PowerShell-script
Maak twee mappen op de(C:)drijfveer:
- Scripts
- Temp
Download en plaats het Export-M365LastPassChange.ps1 PowerShell-script in hetC:Scriptsmap. Het script exporteert alle gebruikers met de datum en tijd van hun laatste wachtwoordwijziging naar een rapport in deC:Tempmap.
Zorg ervoor dat het bestand is gedeblokkeerd om fouten bij het uitvoeren van het script te voorkomen. Lees meer in het artikel Fout niet digitaal ondertekend bij het uitvoeren van PowerShell-script.
Een andere optie is om de onderstaande code te kopiëren en in Kladblok te plakken. Geef het de naamExport-M365LastPassChange.ps1en plaats deze in deC:Scriptsmap.
<#
.SYNOPSIS
.Export-M365LastPassChange.ps1
.DESCRIPTION
The script exports the last password change date and time, and more properties
for all Microsoft 365 users to a CSV file.
.LINK
www.alitajran.com/export-microsoft-365-users-last-password-change-date-and-time/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
X: x.com/alitajran
.CHANGELOG
V1.00, 12/23/2024 - Initial version
#>
param (
[Parameter(Mandatory = $true)]
[string]$ExportPath
)
# Connect to Microsoft Graph PowerShell
Connect-MgGraph -Scopes "User.Read.All", "Domain.Read.All" -NoWelcome
# Define CSV file export location variable using the parameter provided
$Csvfile = "$ExportPath"
# Retrieve all domain password policies
$domains = Get-MgDomain | Select-Object Id, PasswordValidityPeriodInDays
# Define the properties to retrieve for users
$properties = @(
"Id",
"UserPrincipalName",
"mail",
"displayName",
"PasswordPolicies",
"LastPasswordChangeDateTime",
"CreatedDateTime"
)
# Splat the user parameters
$userParams = @{
Filter = "userType eq 'member' and accountEnabled eq true"
Property = $properties
CountVariable = 'userCount'
ConsistencyLevel = 'Eventual'
All = $true
Verbose = $true
}
# Fetch user information
$users = Get-MgUser @userParams | Select-Object $properties
# Get the current datetime for calculation
$timeNow = Get-Date
# Initialize a List to store user information
$Report = [System.Collections.Generic.List[Object]]::new()
# Process users and gather required data
foreach ($user in $users) {
$userDomain = ($user.userPrincipalName).Split('@')[1]
$maxPasswordAge = ($domains | Where-Object { $_.Id -eq $userDomain }).PasswordValidityPeriodInDays
if ($user.PasswordPolicies -contains "DisablePasswordExpiration" -or $maxPasswordAge -eq 2147483647) {
$ReportLine = [PSCustomObject][Ordered]@{
Id = $user.Id
UserPrincipalName = $user.UserPrincipalName
Mail = $user.mail
DisplayName = $user.DisplayName
PasswordPolicies = $user.PasswordPolicies -join "; "
LastPasswordChangeDateTime = $user.LastPasswordChangeDateTime
CreatedDateTime = $user.CreatedDateTime
Domain = $userDomain
MaxPasswordAge = "Password does not expire"
PasswordAge = (New-TimeSpan -Start $user.LastPasswordChangeDateTime -End $timeNow).Days
ExpiresOn = "N/A"
DaysRemaining = "N/A"
}
# Add the report line to the List
$Report.Add($ReportLine)
}
else {
$expiresOn = $user.LastPasswordChangeDateTime.AddDays($maxPasswordAge)
$daysRemaining = (New-TimeSpan -Start $timeNow -End $expiresOn).Days
$ReportLine = [PSCustomObject][Ordered]@{
Id = $user.Id
UserPrincipalName = $user.UserPrincipalName
Mail = $user.mail
DisplayName = $user.DisplayName
PasswordPolicies = $user.PasswordPolicies -join "; "
LastPasswordChangeDateTime = $user.LastPasswordChangeDateTime
CreatedDateTime = $user.CreatedDateTime
Domain = $userDomain
MaxPasswordAge = $maxPasswordAge
PasswordAge = (New-TimeSpan -Start $user.LastPasswordChangeDateTime -End $timeNow).Days
ExpiresOn = $expiresOn
DaysRemaining = if ($daysRemaining -le 0) { "Expired" } else { $daysRemaining }
}
# Add the report line to the List
$Report.Add($ReportLine)
}
}
# Sort on UserPrincipalName
$Report = $Report | Sort-Object UserPrincipalName
# Display the results in Out-GridView
$Report | Out-GridView -Title "Microsoft 365 Users Last Password Change Date and Time Report"
# Export results to CSV
$Report | Export-Csv -Path $Csvfile -NoTypeInformation -Encoding utf8
Write-Host "Script completed. Report exported to $Csvfile" -ForegroundColor CyanStap 2. Voer het Export-M365LastPassChange PowerShell-script uit
Voer de onderstaande opdracht uit om hetExport-M365LastPassChange.ps1PowerShell-script en om een rapport te maken.
C:scripts.Export-M365LastPassChange.ps1 -ExportPath "C:tempLastPassChangeReport.csv"De rapportuitvoer wordt naar een interactieve tabel in een apart venster (Out-GridView) gestuurd.
VERWANT:Exporteer het Microsoft 365-beheerdersrollenledenrapport

Stap 3. Controleer het CSV-bestand met het laatste wachtwoordwijzigingsdatum en -tijdrapport van de gebruiker
Het PowerShell-script Export-M365LastPassChange.ps1 exporteert alle gebruikers met de datum en tijd van hun laatste wachtwoordwijziging naar een CSV-bestand.
Zoek het bestandLastPassChangeReport.csvin het padC:temp.
Open het CSV-bestand met uw favoriete applicatie. In ons voorbeeld is dit Microsoft Excel.

Dat is het!
Conclusie
U hebt geleerd hoe u de datum en tijd van de laatste wachtwoordwijziging van Microsoft 365-gebruikers kunt exporteren. De volgende keer dat u gebruikers wilt dwingen hun wachtwoord te wijzigen en u de status wilt weten, kunt u het script uitvoeren en de datum en tijd controleren. Het is goed om een script te hebben dat een rapport maakt met alle informatie die je nodig hebt.
Vond je dit artikel leuk? Wellicht vindt u Configureer Microsoft Entra-wachtwoordbeveiliging voor on-premises ook interessant. Vergeet ons niet te volgen en dit artikel te delen.







![Deepseek verificatiecode niet ontvangen [fix]](https://elsefix.com/tech/tejana/wp-content/uploads/2025/02/DeepSeek-Verification-code-not-received-Fix.jpg)



