Skip to content

Instantly share code, notes, and snippets.

View davidlu1001's full-sized avatar

David Lu davidlu1001

View GitHub Profile
@davidlu1001
davidlu1001 / compare_tags.sh
Created May 13, 2025 10:38
compare_tags.sh
#!/bin/bash
# compare_tags.sh - Compare leaf node tags between two Immuta CSV files
# Usage: ./compare_tags.sh file1.csv file2.csv
if [ $# -ne 2 ]; then
echo "Usage: $0 <file1.csv> <file2.csv>"
exit 1
fi
@davidlu1001
davidlu1001 / Immuta_Tag_Hierarchy_Extractor.md
Created May 13, 2025 10:04
HowTo - Immuta Tag Hierarchy Extractor

Immuta Tag Hierarchy Extractor

This tool helps you extract all tag hierarchies from an Immuta Governance interface. It identifies and organizes tags into their hierarchical structure and exports them to a CSV file for easy analysis.

Scripts

This toolkit contains two main JavaScript files:

  1. expand-all-sections.js: Expands all collapsible sections in the Immuta interface
  2. immuta-tag-hierarchy-extractor.js: Extracts all tags with their complete hierarchies
@davidlu1001
davidlu1001 / expand-all-sections.js
Last active May 13, 2025 09:41
expand-all-sections.js
// Function to expand all collapsed sections
function expandAllSections() {
// Find all chevron-down icons
const chevronDownIcons = document.querySelectorAll('i.pxl-icon-chevron-down');
console.log(`Found ${chevronDownIcons.length} collapsed sections to expand`);
// Track how many were successfully expanded
let expandedCount = 0;
// Click each icon to expand its section
@davidlu1001
davidlu1001 / immuta-tag-hierarchy-extractor.js
Last active May 13, 2025 09:17
immuta-tag-hierarchy-extractor.js
// immuta-tag-hierarchy-extractor.js
// Version 7.0 - With leaf node column for easier identification
// For use with Immuta Governance interface
(function extractImmutaTagHierarchy() {
console.log("Starting Immuta Tag Hierarchy extraction...");
// Find the governance section
const governanceSection = document.querySelector('[class*="governance"], .governance, div.governance');
if (!governanceSection) {
@davidlu1001
davidlu1001 / IISAppPoolMonitor.ps1
Last active May 5, 2025 06:39
IISAppPoolMonitor
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[ValidateSet("Dev", "Prod")]
[string]$Env = "Prod",
[Parameter(Mandatory = $false)]
[string]$DnsServer = "ServerName1",
[Parameter(Mandatory = $false)]
@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",