Skip to content

Instantly share code, notes, and snippets.

View davidlu1001's full-sized avatar

David Lu davidlu1001

View GitHub Profile
@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)]
@davidlu1001
davidlu1001 / failoverMonitor.ps1
Created March 19, 2025 09:06
failoverMonitor.ps1
# FailoverMonitor.ps1
# Automatic Failover Monitoring and Execution Script
# This script monitors Windows Events forwarded from servers and triggers
# DNS failover when error patterns are detected that meet threshold criteria.
#
# Required dependencies:
# - dnsFailover.ps1 in the same directory
# - Windows Event Forwarding properly configured
# - Appropriate permissions for DNS and IIS operations
@davidlu1001
davidlu1001 / checkServiceState.ps1
Last active December 15, 2024 20:55
Service State Monitor
# Enhanced Service State Monitor with Automatic gMSA Detection
# Version: 1.0 - PowerShell 5 Compatible
# Supports automated execution via Task Scheduler
#Requires -Version 5.0
#Requires -RunAsAdministrator
#Requires -Modules ActiveDirectory
[CmdletBinding()]
param(
[Parameter(ValueFromPipeline = $true)]
@davidlu1001
davidlu1001 / Manage-IISAppPools.ps1
Last active August 8, 2024 10:29
IIS Application Pool Management
[CmdletBinding()]
param(
[Parameter(Mandatory=$false)]
[string]$iisAppPoolPattern = "LoanAlterations*",
[Parameter(Mandatory=$false)]
[string]$computerName = $env:COMPUTERNAME,
[Parameter(Mandatory=$false)]
[int]$maxWaitTime = 30,