sync: Auto-sync from ACG-M-L5090 at 2026-02-01 16:23:43
This commit is contained in:
105
Reset-DataforthNotificationsPassword.ps1
Normal file
105
Reset-DataforthNotificationsPassword.ps1
Normal file
@@ -0,0 +1,105 @@
|
||||
# Reset password for notifications@dataforth.com and set to never expire
|
||||
# Using Microsoft Graph PowerShell (modern approach)
|
||||
|
||||
Write-Host "[OK] Resetting password for notifications@dataforth.com..." -ForegroundColor Green
|
||||
Write-Host ""
|
||||
|
||||
# Check if Microsoft.Graph module is installed
|
||||
if (-not (Get-Module -ListAvailable -Name Microsoft.Graph.Users)) {
|
||||
Write-Host "[WARNING] Microsoft.Graph.Users module not installed" -ForegroundColor Yellow
|
||||
Write-Host " Installing now..." -ForegroundColor Yellow
|
||||
Install-Module Microsoft.Graph.Users -Scope CurrentUser -Force
|
||||
}
|
||||
|
||||
# Connect to Microsoft Graph
|
||||
Write-Host "[OK] Connecting to Microsoft Graph..." -ForegroundColor Green
|
||||
Connect-MgGraph -Scopes "User.ReadWrite.All", "Directory.ReadWrite.All" -TenantId "7dfa3ce8-c496-4b51-ab8d-bd3dcd78b584"
|
||||
|
||||
# Generate a strong random password
|
||||
Add-Type -AssemblyName System.Web
|
||||
$NewPassword = [System.Web.Security.Membership]::GeneratePassword(16, 4)
|
||||
|
||||
Write-Host "[OK] Generated new password: $NewPassword" -ForegroundColor Cyan
|
||||
Write-Host " SAVE THIS PASSWORD - you'll need it for the website config" -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
|
||||
# Reset the password
|
||||
$PasswordProfile = @{
|
||||
Password = $NewPassword
|
||||
ForceChangePasswordNextSignIn = $false
|
||||
}
|
||||
|
||||
try {
|
||||
Update-MgUser -UserId "notifications@dataforth.com" -PasswordProfile $PasswordProfile
|
||||
Write-Host "[SUCCESS] Password reset successfully!" -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host "[ERROR] Failed to reset password: $($_.Exception.Message)" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Set password to never expire
|
||||
Write-Host "[OK] Setting password to never expire..." -ForegroundColor Green
|
||||
|
||||
try {
|
||||
Update-MgUser -UserId "notifications@dataforth.com" -PasswordPolicies "DisablePasswordExpiration"
|
||||
Write-Host "[SUCCESS] Password set to never expire!" -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host "[ERROR] Failed to set password policy: $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
# Verify the settings
|
||||
Write-Host ""
|
||||
Write-Host "================================================================"
|
||||
Write-Host "Verifying Configuration"
|
||||
Write-Host "================================================================"
|
||||
|
||||
$User = Get-MgUser -UserId "notifications@dataforth.com" -Property UserPrincipalName,PasswordPolicies,LastPasswordChangeDateTime
|
||||
|
||||
Write-Host "[OK] User: $($User.UserPrincipalName)"
|
||||
Write-Host " Password Policies: $($User.PasswordPolicies)"
|
||||
Write-Host " Last Password Change: $($User.LastPasswordChangeDateTime)"
|
||||
|
||||
if ($User.PasswordPolicies -contains "DisablePasswordExpiration") {
|
||||
Write-Host " [OK] Password will never expire" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " [WARNING] Password expiration policy not confirmed" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "================================================================"
|
||||
Write-Host "NEXT STEPS"
|
||||
Write-Host "================================================================"
|
||||
Write-Host "1. Update the website SMTP configuration with:" -ForegroundColor Cyan
|
||||
Write-Host " - Username: notifications@dataforth.com"
|
||||
Write-Host " - Password: $NewPassword" -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
Write-Host "2. Test SMTP authentication:"
|
||||
Write-Host " D:\ClaudeTools\Test-DataforthSMTP.ps1"
|
||||
Write-Host ""
|
||||
Write-Host "3. Monitor for successful sends:"
|
||||
Write-Host " Get-MessageTrace -SenderAddress notifications@dataforth.com -StartDate (Get-Date).AddHours(-1)"
|
||||
Write-Host ""
|
||||
|
||||
# Save credentials to a secure file for reference
|
||||
$CredPath = "D:\ClaudeTools\dataforth-notifications-creds.txt"
|
||||
@"
|
||||
Dataforth Notifications Account Credentials
|
||||
Generated: $(Get-Date -Format "yyyy-MM-dd HH:mm:ss")
|
||||
|
||||
Username: notifications@dataforth.com
|
||||
Password: $NewPassword
|
||||
|
||||
SMTP Configuration for Website:
|
||||
- Server: smtp.office365.com
|
||||
- Port: 587
|
||||
- TLS: Yes
|
||||
- Username: notifications@dataforth.com
|
||||
- Password: $NewPassword
|
||||
|
||||
DO NOT COMMIT TO GIT OR SHARE PUBLICLY
|
||||
"@ | Out-File -FilePath $CredPath -Encoding UTF8
|
||||
|
||||
Write-Host "[OK] Credentials saved to: $CredPath" -ForegroundColor Green
|
||||
Write-Host " (Keep this file secure!)" -ForegroundColor Yellow
|
||||
|
||||
Disconnect-MgGraph
|
||||
Reference in New Issue
Block a user