Skip to content

Instantly share code, notes, and snippets.

View davidlu1001's full-sized avatar

David Lu davidlu1001

View GitHub Profile
@davidlu1001
davidlu1001 / Test-gMSAConfiguration.ps1
Created March 21, 2025 19:08
Test-gMSAConfiguration.ps1
# Save this script as Test-gMSAConfiguration.ps1
param(
[Parameter(Mandatory = $true)]
[string]$gMSAName,
[Parameter(Mandatory = $false)]
[string]$ServiceName = "",
[Parameter(Mandatory = $false)]
@davidlu1001
davidlu1001 / Fix-gMSAService.ps1
Created March 21, 2025 19:08
Fix-gMSAService.ps1
# gMSA Service AutoFix Solution
# This script creates a reliable startup fix for services using gMSA accounts
# Save as Fix-gMSAService.ps1
param(
[Parameter(Mandatory = $true)]
[string]$ServiceName,
[Parameter(Mandatory = $false)]
[int]$StartupDelaySeconds = 120,
@davidlu1001
davidlu1001 / Create-gMSAStartupFix.ps1
Created March 21, 2025 19:08
Create-gMSAStartupFix.ps1
# Save this script as Create-gMSAStartupFix.ps1
param(
[Parameter(Mandatory = $true)]
[string]$ServiceName
)
# Service startup fix script content
$scriptContent = @"
# gMSA Service Startup Fix Script
@davidlu1001
davidlu1001 / Reset-gMSAServiceCredential.ps1
Created March 21, 2025 19:07
Reset-gMSAServiceCredential.ps1
# Save this script as Reset-gMSAServiceCredential.ps1
param(
[Parameter(Mandatory = $true)]
[string]$ServiceName,
[Parameter(Mandatory = $false)]
[switch]$SetupAutoRestart = $false
)
@davidlu1001
davidlu1001 / autoFailoverMonitorEmail.ps1
Last active April 1, 2025 04:41
autoFailoverMonitorEmail.ps1
# autoFailoverMonitor.ps1
# This script monitors the active server for COMException errors in EventLog
# and automatically triggers a complete failover cycle when threshold is met.
# Enhanced with simplified email reporting capabilities.
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[ValidateSet("Dev", "Prod")]
[string]$Env = "Dev",
@davidlu1001
davidlu1001 / Automated_Failover_Solution.md
Last active March 26, 2025 18:44
Automated Failover Solution for COMException Issues
@davidlu1001
davidlu1001 / COMExceptionEventSimulator.ps1
Last active March 20, 2025 05:34
COMExceptionEventSimulator.ps1
# COMExceptionEventSimulator.ps1
# This script creates simulated COMException events in the Windows Event Log for testing purposes.
[CmdletBinding()]
param (
[Parameter(Mandatory = $false)]
[int]$EventCount = 3,
[Parameter(Mandatory = $false)]
[int]$TimeSpanMinutes = 10,
@davidlu1001
davidlu1001 / Get-COMExceptionEvents.ps1
Created March 20, 2025 04:21
Get-COMExceptionEvents.ps1
param (
[Parameter(Mandatory=$true)]
[int]$Days,
[Parameter(Mandatory=$false)]
[string[]]$LogNames = @("Application", "System"),
[Parameter(Mandatory=$false)]
[string]$OutputPath = "$env:USERPROFILE\Desktop\COMExceptionEvents.csv"
)
@davidlu1001
davidlu1001 / autoFailoverMonitor.ps1
Last active March 26, 2025 10:08
autoFailoverMonitor.ps1
# autoFailoverMonitor.ps1
# This script monitors the active server for COMException errors in EventLog
# and automatically triggers a complete failover cycle when threshold is met.
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[ValidateSet("Dev", "Prod")]
[string]$Env = "Dev",
@davidlu1001
davidlu1001 / CompleteFailoverCycle.ps1
Last active March 20, 2025 03:29
CompleteFailoverCycle.ps1
# completeFailoverCycle.ps1
# This script implements a complete failover cycle by:
# 1. Performing initial failover (A -> B)
# 2. Restarting the original server
# 3. Performing second failover (B -> A)
# All while using the existing dnsFailover_v2.ps1 script
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]